format XUI

This commit is contained in:
Tropical
2026-03-22 12:40:22 -05:00
parent a403bf5a4a
commit 4b2f614326
175 changed files with 31285 additions and 30912 deletions

View File

@@ -15,377 +15,384 @@
//----------------------------------------------------------------------------------
// Performs initialization tasks - retrieves controls.
//----------------------------------------------------------------------------------
HRESULT CScene_MultiGameInfo::OnInit( XUIMessageInit* pInitData, BOOL& bHandled )
{
MapChildControls();
XuiControlSetText(playersList,app.GetString(IDS_PLAYERS));
XuiControlSetText(m_JoinGame,app.GetString(IDS_JOIN_GAME));
XuiControlSetText(m_labelDifficulty,app.GetString(IDS_LABEL_DIFFICULTY));
XuiControlSetText(m_labelGameType,app.GetString(IDS_LABEL_GAME_TYPE));
XuiControlSetText(m_labelGamertagsOn,app.GetString(IDS_LABEL_GAMERTAGS));
XuiControlSetText(m_labelStructuresOn,app.GetString(IDS_LABEL_STRUCTURES));
XuiControlSetText(m_labelLevelType,app.GetString(IDS_LABEL_LEVEL_TYPE));
XuiControlSetText(m_labelPvP,app.GetString(IDS_LABEL_PvP));
XuiControlSetText(m_labelTrust,app.GetString(IDS_LABEL_TRUST));
XuiControlSetText(m_labelTNTOn,app.GetString(IDS_LABEL_TNT));
XuiControlSetText(m_labelFireOn,app.GetString(IDS_LABEL_FIRE_SPREADS));
HRESULT CScene_MultiGameInfo::OnInit(XUIMessageInit* pInitData,
BOOL& bHandled) {
MapChildControls();
JoinMenuInitData *initData = (JoinMenuInitData *)pInitData->pvInitData;
m_selectedSession = initData->selectedSession;
m_iPad = initData->iPad;
// 4J-PB - don't delete this - it's part of the joinload structure
//delete initData;
XuiControlSetText(playersList, app.GetString(IDS_PLAYERS));
XuiControlSetText(m_JoinGame, app.GetString(IDS_JOIN_GAME));
XuiControlSetText(m_labelDifficulty, app.GetString(IDS_LABEL_DIFFICULTY));
XuiControlSetText(m_labelGameType, app.GetString(IDS_LABEL_GAME_TYPE));
XuiControlSetText(m_labelGamertagsOn, app.GetString(IDS_LABEL_GAMERTAGS));
XuiControlSetText(m_labelStructuresOn, app.GetString(IDS_LABEL_STRUCTURES));
XuiControlSetText(m_labelLevelType, app.GetString(IDS_LABEL_LEVEL_TYPE));
XuiControlSetText(m_labelPvP, app.GetString(IDS_LABEL_PvP));
XuiControlSetText(m_labelTrust, app.GetString(IDS_LABEL_TRUST));
XuiControlSetText(m_labelTNTOn, app.GetString(IDS_LABEL_TNT));
XuiControlSetText(m_labelFireOn, app.GetString(IDS_LABEL_FIRE_SPREADS));
for(unsigned int i = 0; i < MINECRAFT_NET_MAX_PLAYERS; ++i)
{
if( m_selectedSession->data.players[i] != NULL )
{
playersList.InsertItems(i,1);
JoinMenuInitData* initData = (JoinMenuInitData*)pInitData->pvInitData;
m_selectedSession = initData->selectedSession;
m_iPad = initData->iPad;
// 4J-PB - don't delete this - it's part of the joinload structure
// delete initData;
for (unsigned int i = 0; i < MINECRAFT_NET_MAX_PLAYERS; ++i) {
if (m_selectedSession->data.players[i] != NULL) {
playersList.InsertItems(i, 1);
#ifndef _CONTENT_PACKAGE
if(app.DebugSettingsOn() && (app.GetGameSettingsDebugMask()&(1L<<eDebugSetting_DebugLeaderboards)))
{
playersList.SetText(i, L"WWWWWWWWWWWWWWWW" );
}
else
if (app.DebugSettingsOn() &&
(app.GetGameSettingsDebugMask() &
(1L << eDebugSetting_DebugLeaderboards))) {
playersList.SetText(i, L"WWWWWWWWWWWWWWWW");
} else
#endif
{
playersList.SetText(i, convStringToWstring( m_selectedSession->data.szPlayers[i] ).c_str() );
}
}
else
{
// Leave the loop when we hit the first NULL player
break;
}
}
{
playersList.SetText(
i, convStringToWstring(m_selectedSession->data.szPlayers[i])
.c_str());
}
} else {
// Leave the loop when we hit the first NULL player
break;
}
}
unsigned int uiGameHostSettings = m_selectedSession->data.m_uiGameHostSettings;
switch(app.GetGameHostOption(uiGameHostSettings,eGameHostOption_Difficulty))
{
case Difficulty::EASY:
m_difficulty.SetText( app.GetString(IDS_DIFFICULTY_TITLE_EASY) );
break;
case Difficulty::NORMAL:
m_difficulty.SetText( app.GetString(IDS_DIFFICULTY_TITLE_NORMAL) );
break;
case Difficulty::HARD:
m_difficulty.SetText( app.GetString(IDS_DIFFICULTY_TITLE_HARD) );
break;
case Difficulty::PEACEFUL:
default:
m_difficulty.SetText( app.GetString(IDS_DIFFICULTY_TITLE_PEACEFUL) );
break;
}
unsigned int hostOption = app.GetGameHostOption(uiGameHostSettings,eGameHostOption_GameType);
unsigned int uiGameHostSettings =
m_selectedSession->data.m_uiGameHostSettings;
switch (
app.GetGameHostOption(uiGameHostSettings, eGameHostOption_Difficulty)) {
case Difficulty::EASY:
m_difficulty.SetText(app.GetString(IDS_DIFFICULTY_TITLE_EASY));
break;
case Difficulty::NORMAL:
m_difficulty.SetText(app.GetString(IDS_DIFFICULTY_TITLE_NORMAL));
break;
case Difficulty::HARD:
m_difficulty.SetText(app.GetString(IDS_DIFFICULTY_TITLE_HARD));
break;
case Difficulty::PEACEFUL:
default:
m_difficulty.SetText(app.GetString(IDS_DIFFICULTY_TITLE_PEACEFUL));
break;
}
if (hostOption == GameType::CREATIVE->getId())
{
m_GameType.SetText( app.GetString(IDS_CREATIVE) );
}
else if (hostOption == GameType::SURVIVAL->getId())
{
m_GameType.SetText( app.GetString(IDS_SURVIVAL) );
}
else
{
m_GameType.SetText( app.GetString(IDS_SURVIVAL) );
}
unsigned int hostOption =
app.GetGameHostOption(uiGameHostSettings, eGameHostOption_GameType);
if(app.GetGameHostOption(uiGameHostSettings,eGameHostOption_Gamertags)) m_gamertagsOn.SetText( app.GetString(IDS_ON) );
else m_gamertagsOn.SetText( app.GetString(IDS_OFF) );
if (hostOption == GameType::CREATIVE->getId()) {
m_GameType.SetText(app.GetString(IDS_CREATIVE));
} else if (hostOption == GameType::SURVIVAL->getId()) {
m_GameType.SetText(app.GetString(IDS_SURVIVAL));
} else {
m_GameType.SetText(app.GetString(IDS_SURVIVAL));
}
if(app.GetGameHostOption(uiGameHostSettings,eGameHostOption_Structures)) m_structuresOn.SetText( app.GetString(IDS_ON) );
else m_structuresOn.SetText( app.GetString(IDS_OFF) );
if (app.GetGameHostOption(uiGameHostSettings, eGameHostOption_Gamertags))
m_gamertagsOn.SetText(app.GetString(IDS_ON));
else
m_gamertagsOn.SetText(app.GetString(IDS_OFF));
if(app.GetGameHostOption(uiGameHostSettings,eGameHostOption_LevelType)) m_levelType.SetText( app.GetString(IDS_LEVELTYPE_SUPERFLAT) );
else m_levelType.SetText( app.GetString(IDS_LEVELTYPE_NORMAL) );
if (app.GetGameHostOption(uiGameHostSettings, eGameHostOption_Structures))
m_structuresOn.SetText(app.GetString(IDS_ON));
else
m_structuresOn.SetText(app.GetString(IDS_OFF));
if(app.GetGameHostOption(uiGameHostSettings,eGameHostOption_PvP)) m_pvpOn.SetText( app.GetString(IDS_ON) );
else m_pvpOn.SetText( app.GetString(IDS_OFF) );
if (app.GetGameHostOption(uiGameHostSettings, eGameHostOption_LevelType))
m_levelType.SetText(app.GetString(IDS_LEVELTYPE_SUPERFLAT));
else
m_levelType.SetText(app.GetString(IDS_LEVELTYPE_NORMAL));
if(app.GetGameHostOption(uiGameHostSettings,eGameHostOption_TrustPlayers)) m_trustPlayers.SetText( app.GetString(IDS_ON) );
else m_trustPlayers.SetText( app.GetString(IDS_OFF) );
if (app.GetGameHostOption(uiGameHostSettings, eGameHostOption_PvP))
m_pvpOn.SetText(app.GetString(IDS_ON));
else
m_pvpOn.SetText(app.GetString(IDS_OFF));
if(app.GetGameHostOption(uiGameHostSettings,eGameHostOption_TNT)) m_tntOn.SetText( app.GetString(IDS_ON) );
else m_tntOn.SetText( app.GetString(IDS_OFF) );
if (app.GetGameHostOption(uiGameHostSettings, eGameHostOption_TrustPlayers))
m_trustPlayers.SetText(app.GetString(IDS_ON));
else
m_trustPlayers.SetText(app.GetString(IDS_OFF));
if(app.GetGameHostOption(uiGameHostSettings,eGameHostOption_FireSpreads)) m_fireOn.SetText( app.GetString(IDS_ON) );
else m_fireOn.SetText( app.GetString(IDS_OFF) );
if (app.GetGameHostOption(uiGameHostSettings, eGameHostOption_TNT))
m_tntOn.SetText(app.GetString(IDS_ON));
else
m_tntOn.SetText(app.GetString(IDS_OFF));
m_bIgnoreInput = false;
// Alert the app the we want to be informed of ethernet connections
app.SetLiveLinkRequired( true );
TelemetryManager->RecordMenuShown(m_iPad, eUIScene_JoinMenu, 0);
if (app.GetGameHostOption(uiGameHostSettings, eGameHostOption_FireSpreads))
m_fireOn.SetText(app.GetString(IDS_ON));
else
m_fireOn.SetText(app.GetString(IDS_OFF));
ui.SetTooltips( DEFAULT_XUI_MENU_USER, IDS_TOOLTIPS_SELECT, IDS_TOOLTIPS_BACK );
m_bIgnoreInput = false;
XuiSetTimer(m_hObj,UPDATE_PLAYERS_TIMER_ID,UPDATE_PLAYERS_TIMER_TIME);
return S_OK;
// Alert the app the we want to be informed of ethernet connections
app.SetLiveLinkRequired(true);
TelemetryManager->RecordMenuShown(m_iPad, eUIScene_JoinMenu, 0);
ui.SetTooltips(DEFAULT_XUI_MENU_USER, IDS_TOOLTIPS_SELECT,
IDS_TOOLTIPS_BACK);
XuiSetTimer(m_hObj, UPDATE_PLAYERS_TIMER_ID, UPDATE_PLAYERS_TIMER_TIME);
return S_OK;
}
//----------------------------------------------------------------------------------
// Handler for the button press message.
//----------------------------------------------------------------------------------
HRESULT CScene_MultiGameInfo::OnNotifyPressEx(HXUIOBJ hObjPressed, XUINotifyPress* pNotifyPressData, BOOL& rfHandled)
{
if(m_bIgnoreInput) return S_OK;
HRESULT CScene_MultiGameInfo::OnNotifyPressEx(HXUIOBJ hObjPressed,
XUINotifyPress* pNotifyPressData,
BOOL& rfHandled) {
if (m_bIgnoreInput) return S_OK;
// This assumes all buttons can only be pressed with the A button
ui.AnimateKeyPress(pNotifyPressData->UserIndex, VK_PAD_A);
// This assumes all buttons can only be pressed with the A button
ui.AnimateKeyPress(pNotifyPressData->UserIndex, VK_PAD_A);
if ( hObjPressed == m_JoinGame )
{
// check we have the texture pack required for the game
if (hObjPressed == m_JoinGame) {
// check we have the texture pack required for the game
SetShow(FALSE);
m_bIgnoreInput = true;
SetShow( FALSE );
m_bIgnoreInput=true;
// 4J Stu - If we only have one controller connected, then don't show
// the sign-in UI again
int connectedControllers = 0;
for (unsigned int i = 0; i < XUSER_MAX_COUNT; ++i) {
if (InputManager.IsPadConnected(i) || ProfileManager.IsSignedIn(i))
++connectedControllers;
}
// 4J Stu - If we only have one controller connected, then don't show the sign-in UI again
int connectedControllers = 0;
for(unsigned int i = 0; i < XUSER_MAX_COUNT; ++i)
{
if( InputManager.IsPadConnected(i) || ProfileManager.IsSignedIn(i) ) ++connectedControllers;
}
if (connectedControllers == 1 || !RenderManager.IsHiDef()) {
JoinGame(this);
} else {
ProfileManager.RequestSignInUI(
false, false, false, true, false,
&CScene_MultiGameInfo::StartGame_SignInReturned, this,
ProfileManager.GetPrimaryPad());
}
}
if(connectedControllers == 1 || !RenderManager.IsHiDef())
{
JoinGame( this );
}
else
{
ProfileManager.RequestSignInUI(false, false, false, true, false,&CScene_MultiGameInfo::StartGame_SignInReturned, this,ProfileManager.GetPrimaryPad());
}
}
return S_OK;
return S_OK;
}
HRESULT CScene_MultiGameInfo::OnKeyDown(XUIMessageInput* pInputData, BOOL& rfHandled)
{
if(m_bIgnoreInput) return S_OK;
HRESULT CScene_MultiGameInfo::OnKeyDown(XUIMessageInput* pInputData,
BOOL& rfHandled) {
if (m_bIgnoreInput) return S_OK;
ui.AnimateKeyPress(pInputData->UserIndex, pInputData->dwKeyCode);
ui.AnimateKeyPress(pInputData->UserIndex, pInputData->dwKeyCode);
HRESULT hr = S_OK;
HRESULT hr = S_OK;
// Explicitly handle B button presses
switch(pInputData->dwKeyCode)
{
case VK_PAD_B:
case VK_ESCAPE:
app.NavigateBack(pInputData->UserIndex);
rfHandled = TRUE;
break;
case VK_PAD_Y:
if(m_selectedSession != NULL && playersList.TreeHasFocus() && playersList.GetItemCount() > 0)
{
PlayerUID xuid = m_selectedSession->data.players[playersList.GetCurSel()];
if( xuid != INVALID_XUID )
hr = XShowGamerCardUI(ProfileManager.GetLockedProfile(), xuid);
}
break;
}
return hr;
// Explicitly handle B button presses
switch (pInputData->dwKeyCode) {
case VK_PAD_B:
case VK_ESCAPE:
app.NavigateBack(pInputData->UserIndex);
rfHandled = TRUE;
break;
case VK_PAD_Y:
if (m_selectedSession != NULL && playersList.TreeHasFocus() &&
playersList.GetItemCount() > 0) {
PlayerUID xuid =
m_selectedSession->data.players[playersList.GetCurSel()];
if (xuid != INVALID_XUID)
hr = XShowGamerCardUI(ProfileManager.GetLockedProfile(),
xuid);
}
break;
}
return hr;
}
HRESULT CScene_MultiGameInfo::OnNavReturn(HXUIOBJ hObj,BOOL& rfHandled)
{
ui.SetTooltips( DEFAULT_XUI_MENU_USER, IDS_TOOLTIPS_SELECT, IDS_TOOLTIPS_BACK);
HRESULT CScene_MultiGameInfo::OnNavReturn(HXUIOBJ hObj, BOOL& rfHandled) {
ui.SetTooltips(DEFAULT_XUI_MENU_USER, IDS_TOOLTIPS_SELECT,
IDS_TOOLTIPS_BACK);
return S_OK;
return S_OK;
}
HRESULT CScene_MultiGameInfo::OnNotifySelChanged(HXUIOBJ hObjSource, XUINotifySelChanged *pNotifySelChangedData, BOOL& bHandled)
{
if(pNotifySelChangedData->iOldItem!=-1)
{
CXuiSceneBase::PlayUISFX(eSFX_Focus);
}
bHandled = TRUE;
HRESULT CScene_MultiGameInfo::OnNotifySelChanged(
HXUIOBJ hObjSource, XUINotifySelChanged* pNotifySelChangedData,
BOOL& bHandled) {
if (pNotifySelChangedData->iOldItem != -1) {
CXuiSceneBase::PlayUISFX(eSFX_Focus);
}
bHandled = TRUE;
return S_OK;
return S_OK;
}
HRESULT CScene_MultiGameInfo::OnNotifySetFocus(HXUIOBJ hObjSource, XUINotifyFocus *pNotifyFocusData, BOOL& bHandled)
{
if( playersList.TreeHasFocus() && playersList.GetItemCount() > 0 )
{
ui.SetTooltips( DEFAULT_XUI_MENU_USER, -1, IDS_TOOLTIPS_BACK, -1, IDS_TOOLTIPS_VIEW_GAMERCARD );
bHandled = TRUE;
}
return S_OK;
HRESULT CScene_MultiGameInfo::OnNotifySetFocus(HXUIOBJ hObjSource,
XUINotifyFocus* pNotifyFocusData,
BOOL& bHandled) {
if (playersList.TreeHasFocus() && playersList.GetItemCount() > 0) {
ui.SetTooltips(DEFAULT_XUI_MENU_USER, -1, IDS_TOOLTIPS_BACK, -1,
IDS_TOOLTIPS_VIEW_GAMERCARD);
bHandled = TRUE;
}
return S_OK;
}
HRESULT CScene_MultiGameInfo::OnNotifyKillFocus(HXUIOBJ hObjSource, XUINotifyFocus *pNotifyFocusData, BOOL& bHandled)
{
if( pNotifyFocusData->hObjOther == m_JoinGame )
{
ui.SetTooltips( DEFAULT_XUI_MENU_USER, IDS_TOOLTIPS_SELECT, IDS_TOOLTIPS_BACK );
bHandled = TRUE;
}
return S_OK;
HRESULT CScene_MultiGameInfo::OnNotifyKillFocus(
HXUIOBJ hObjSource, XUINotifyFocus* pNotifyFocusData, BOOL& bHandled) {
if (pNotifyFocusData->hObjOther == m_JoinGame) {
ui.SetTooltips(DEFAULT_XUI_MENU_USER, IDS_TOOLTIPS_SELECT,
IDS_TOOLTIPS_BACK);
bHandled = TRUE;
}
return S_OK;
}
int CScene_MultiGameInfo::StartGame_SignInReturned(void *pParam,bool bContinue, int iPad)
{
CScene_MultiGameInfo* pClass = (CScene_MultiGameInfo*)pParam;
int CScene_MultiGameInfo::StartGame_SignInReturned(void* pParam, bool bContinue,
int iPad) {
CScene_MultiGameInfo* pClass = (CScene_MultiGameInfo*)pParam;
if(bContinue==true)
{
// It's possible that the player has not signed in - they can back out
if(ProfileManager.IsSignedIn(iPad))
{
JoinGame(pClass);
}
}
else
{
pClass->SetShow( TRUE );
pClass->m_bIgnoreInput=false;
}
return 0;
if (bContinue == true) {
// It's possible that the player has not signed in - they can back out
if (ProfileManager.IsSignedIn(iPad)) {
JoinGame(pClass);
}
} else {
pClass->SetShow(TRUE);
pClass->m_bIgnoreInput = false;
}
return 0;
}
// Shared function to join the game that is the same whether we used the sign-in UI or not
void CScene_MultiGameInfo::JoinGame(CScene_MultiGameInfo* pClass)
{
unsigned int dwLocalUsersMask = 0;
bool noPrivileges = false;
unsigned int dwSignedInUsers = 0;
// Shared function to join the game that is the same whether we used the sign-in
// UI or not
void CScene_MultiGameInfo::JoinGame(CScene_MultiGameInfo* pClass) {
unsigned int dwLocalUsersMask = 0;
bool noPrivileges = false;
unsigned int dwSignedInUsers = 0;
// if we're in SD mode, then only the primary player gets to play
if(RenderManager.IsHiDef())
{
for(unsigned int index = 0; index < XUSER_MAX_COUNT; ++index)
{
if(ProfileManager.IsSignedIn(index) )
{
++dwSignedInUsers;
if( !ProfileManager.AllowedToPlayMultiplayer(index) ) noPrivileges = true;
dwLocalUsersMask |= CGameNetworkManager::GetLocalPlayerMask(index);
}
}
}
else
{
if(ProfileManager.IsSignedIn(ProfileManager.GetPrimaryPad()) )
{
++dwSignedInUsers;
if( !ProfileManager.AllowedToPlayMultiplayer(ProfileManager.GetPrimaryPad()) ) noPrivileges = true;
dwLocalUsersMask |= CGameNetworkManager::GetLocalPlayerMask(ProfileManager.GetPrimaryPad());
}
}
// if we're in SD mode, then only the primary player gets to play
if (RenderManager.IsHiDef()) {
for (unsigned int index = 0; index < XUSER_MAX_COUNT; ++index) {
if (ProfileManager.IsSignedIn(index)) {
++dwSignedInUsers;
if (!ProfileManager.AllowedToPlayMultiplayer(index))
noPrivileges = true;
dwLocalUsersMask |=
CGameNetworkManager::GetLocalPlayerMask(index);
}
}
} else {
if (ProfileManager.IsSignedIn(ProfileManager.GetPrimaryPad())) {
++dwSignedInUsers;
if (!ProfileManager.AllowedToPlayMultiplayer(
ProfileManager.GetPrimaryPad()))
noPrivileges = true;
dwLocalUsersMask |= CGameNetworkManager::GetLocalPlayerMask(
ProfileManager.GetPrimaryPad());
}
}
// Check if user-created content is allowed, as we cannot play multiplayer if it's not
bool noUGC = false;
bool pccAllowed = true;
bool pccFriendsAllowed = true;
ProfileManager.AllowedPlayerCreatedContent(ProfileManager.GetPrimaryPad(),false,&pccAllowed,&pccFriendsAllowed);
if(!pccAllowed && !pccFriendsAllowed) noUGC = true;
// Check if user-created content is allowed, as we cannot play multiplayer
// if it's not
bool noUGC = false;
bool pccAllowed = true;
bool pccFriendsAllowed = true;
ProfileManager.AllowedPlayerCreatedContent(
ProfileManager.GetPrimaryPad(), false, &pccAllowed, &pccFriendsAllowed);
if (!pccAllowed && !pccFriendsAllowed) noUGC = true;
if(noUGC)
{
pClass->SetShow( TRUE );
pClass->m_bIgnoreInput=false;
unsigned int uiIDA[1];
uiIDA[0]=IDS_CONFIRM_OK;
if (noUGC) {
pClass->SetShow(TRUE);
pClass->m_bIgnoreInput = false;
unsigned int uiIDA[1];
uiIDA[0] = IDS_CONFIRM_OK;
int messageText = IDS_NO_USER_CREATED_CONTENT_PRIVILEGE_SINGLE_LOCAL;
if(dwSignedInUsers > 1) messageText = IDS_NO_USER_CREATED_CONTENT_PRIVILEGE_ALL_LOCAL;
int messageText = IDS_NO_USER_CREATED_CONTENT_PRIVILEGE_SINGLE_LOCAL;
if (dwSignedInUsers > 1)
messageText = IDS_NO_USER_CREATED_CONTENT_PRIVILEGE_ALL_LOCAL;
StorageManager.RequestMessageBox( IDS_CONNECTION_FAILED, messageText, uiIDA,1,ProfileManager.GetPrimaryPad(),NULL,NULL, app.GetStringTable());
}
else if(noPrivileges)
{
pClass->SetShow( TRUE );
pClass->m_bIgnoreInput=false;
unsigned int uiIDA[1];
uiIDA[0]=IDS_CONFIRM_OK;
StorageManager.RequestMessageBox( IDS_NO_MULTIPLAYER_PRIVILEGE_TITLE, IDS_NO_MULTIPLAYER_PRIVILEGE_JOIN_TEXT, uiIDA,1,ProfileManager.GetPrimaryPad(),NULL,NULL, app.GetStringTable());
}
else
{
CGameNetworkManager::eJoinGameResult result = g_NetworkManager.JoinGame( pClass->m_selectedSession, dwLocalUsersMask );
StorageManager.RequestMessageBox(
IDS_CONNECTION_FAILED, messageText, uiIDA, 1,
ProfileManager.GetPrimaryPad(), NULL, NULL, app.GetStringTable());
// Alert the app the we no longer want to be informed of ethernet connections
app.SetLiveLinkRequired( false );
} else if (noPrivileges) {
pClass->SetShow(TRUE);
pClass->m_bIgnoreInput = false;
unsigned int uiIDA[1];
uiIDA[0] = IDS_CONFIRM_OK;
StorageManager.RequestMessageBox(
IDS_NO_MULTIPLAYER_PRIVILEGE_TITLE,
IDS_NO_MULTIPLAYER_PRIVILEGE_JOIN_TEXT, uiIDA, 1,
ProfileManager.GetPrimaryPad(), NULL, NULL, app.GetStringTable());
} else {
CGameNetworkManager::eJoinGameResult result = g_NetworkManager.JoinGame(
pClass->m_selectedSession, dwLocalUsersMask);
if( result != CGameNetworkManager::JOINGAME_SUCCESS )
{
int exitReasonStringId = -1;
switch(result)
{
case CGameNetworkManager::JOINGAME_FAIL_SERVER_FULL:
exitReasonStringId = IDS_DISCONNECTED_SERVER_FULL;
break;
}
// Alert the app the we no longer want to be informed of ethernet
// connections
app.SetLiveLinkRequired(false);
if( exitReasonStringId == -1 )
{
app.NavigateBack(ProfileManager.GetPrimaryPad());
}
else
{
unsigned int uiIDA[1];
uiIDA[0]=IDS_CONFIRM_OK;
StorageManager.RequestMessageBox( IDS_CONNECTION_FAILED, exitReasonStringId, uiIDA,1,ProfileManager.GetPrimaryPad(),NULL,NULL, app.GetStringTable());
exitReasonStringId = -1;
if (result != CGameNetworkManager::JOINGAME_SUCCESS) {
int exitReasonStringId = -1;
switch (result) {
case CGameNetworkManager::JOINGAME_FAIL_SERVER_FULL:
exitReasonStringId = IDS_DISCONNECTED_SERVER_FULL;
break;
}
app.NavigateToHomeMenu();
}
}
}
if (exitReasonStringId == -1) {
app.NavigateBack(ProfileManager.GetPrimaryPad());
} else {
unsigned int uiIDA[1];
uiIDA[0] = IDS_CONFIRM_OK;
StorageManager.RequestMessageBox(
IDS_CONNECTION_FAILED, exitReasonStringId, uiIDA, 1,
ProfileManager.GetPrimaryPad(), NULL, NULL,
app.GetStringTable());
exitReasonStringId = -1;
app.NavigateToHomeMenu();
}
}
}
}
HRESULT CScene_MultiGameInfo::OnTimer( XUIMessageTimer *pTimer, BOOL& bHandled )
{
if ( pTimer->nId == UPDATE_PLAYERS_TIMER_ID)
{
PlayerUID selectedPlayerXUID = m_selectedSession->data.players[playersList.GetCurSel()];
HRESULT CScene_MultiGameInfo::OnTimer(XUIMessageTimer* pTimer, BOOL& bHandled) {
if (pTimer->nId == UPDATE_PLAYERS_TIMER_ID) {
PlayerUID selectedPlayerXUID =
m_selectedSession->data.players[playersList.GetCurSel()];
bool success = g_NetworkManager.GetGameSessionInfo(m_iPad, m_selectedSession->sessionId,m_selectedSession);
bool success = g_NetworkManager.GetGameSessionInfo(
m_iPad, m_selectedSession->sessionId, m_selectedSession);
if( success )
{
playersList.DeleteItems(0, playersList.GetItemCount());
int selectedIndex = 0;
for(unsigned int i = 0; i < MINECRAFT_NET_MAX_PLAYERS; ++i)
{
if( m_selectedSession->data.players[i] != NULL )
{
if(m_selectedSession->data.players[i] == selectedPlayerXUID) selectedIndex = i;
playersList.InsertItems(i,1);
if (success) {
playersList.DeleteItems(0, playersList.GetItemCount());
int selectedIndex = 0;
for (unsigned int i = 0; i < MINECRAFT_NET_MAX_PLAYERS; ++i) {
if (m_selectedSession->data.players[i] != NULL) {
if (m_selectedSession->data.players[i] ==
selectedPlayerXUID)
selectedIndex = i;
playersList.InsertItems(i, 1);
#ifndef _CONTENT_PACKAGE
if(app.DebugSettingsOn() && (app.GetGameSettingsDebugMask()&(1L<<eDebugSetting_DebugLeaderboards)))
{
playersList.SetText(i, L"WWWWWWWWWWWWWWWW" );
}
else
if (app.DebugSettingsOn() &&
(app.GetGameSettingsDebugMask() &
(1L << eDebugSetting_DebugLeaderboards))) {
playersList.SetText(i, L"WWWWWWWWWWWWWWWW");
} else
#endif
{
playersList.SetText(i, convStringToWstring( m_selectedSession->data.szPlayers[i] ).c_str() );
}
}
else
{
// Leave the loop when we hit the first NULL player
break;
}
}
playersList.SetCurSel(selectedIndex);
}
}
{
playersList.SetText(
i, convStringToWstring(
m_selectedSession->data.szPlayers[i])
.c_str());
}
} else {
// Leave the loop when we hit the first NULL player
break;
}
}
playersList.SetCurSel(selectedIndex);
}
}
return S_OK;
return S_OK;
}