aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.Client/Common/UI/UIScene_SaveMessage.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Minecraft.Client/Common/UI/UIScene_SaveMessage.cpp')
-rw-r--r--Minecraft.Client/Common/UI/UIScene_SaveMessage.cpp182
1 files changed, 182 insertions, 0 deletions
diff --git a/Minecraft.Client/Common/UI/UIScene_SaveMessage.cpp b/Minecraft.Client/Common/UI/UIScene_SaveMessage.cpp
new file mode 100644
index 00000000..a91d5aa8
--- /dev/null
+++ b/Minecraft.Client/Common/UI/UIScene_SaveMessage.cpp
@@ -0,0 +1,182 @@
+#include "stdafx.h"
+#include "UI.h"
+#include "UIScene_SaveMessage.h"
+
+#define PROFILE_LOADED_TIMER_ID 0
+#define PROFILE_LOADED_TIMER_TIME 50
+
+UIScene_SaveMessage::UIScene_SaveMessage(int iPad, void *initData, UILayer *parentLayer) : UIScene(iPad, parentLayer)
+{
+ // Setup all the Iggy references we need for this scene
+ initialiseMovie();
+
+ parentLayer->addComponent(iPad,eUIComponent_Panorama);
+ parentLayer->addComponent(iPad,eUIComponent_Logo);
+
+ m_buttonConfirm.init(app.GetString(IDS_CONFIRM_OK),eControl_Confirm);
+ m_labelDescription.init(app.GetString(IDS_SAVE_ICON_MESSAGE));
+
+ IggyDataValue result;
+
+ // Russian needs to resize the box
+ IggyResult out = IggyPlayerCallMethodRS ( getMovie() , &result, IggyPlayerRootPath( getMovie() ), m_funcAutoResize , 0 , NULL );
+
+ // 4J-PB - If we have a signed in user connected, let's get the DLC now
+ for(unsigned int i = 0; i < XUSER_MAX_COUNT; ++i)
+ {
+ if( (InputManager.IsPadConnected(i) || ProfileManager.IsSignedIn(i)) )
+ {
+ if(!app.DLCInstallProcessCompleted() && !app.DLCInstallPending())
+ {
+ app.StartInstallDLCProcess(i);
+ break;
+ }
+ }
+ }
+
+ m_bIgnoreInput=false;
+
+ // 4J-TomK - rebuild touch after auto resize
+#ifdef __PSVITA__
+ ui.TouchBoxRebuild(this);
+#endif
+}
+
+UIScene_SaveMessage::~UIScene_SaveMessage()
+{
+ m_parentLayer->removeComponent(eUIComponent_Panorama);
+ m_parentLayer->removeComponent(eUIComponent_Logo);
+}
+
+wstring UIScene_SaveMessage::getMoviePath()
+{
+ return L"SaveMessage";
+}
+
+void UIScene_SaveMessage::updateTooltips()
+{
+ ui.SetTooltips( DEFAULT_XUI_MENU_USER, IDS_TOOLTIPS_SELECT );
+}
+
+void UIScene_SaveMessage::handleInput(int iPad, int key, bool repeat, bool pressed, bool released, bool &handled)
+{
+ if(m_bIgnoreInput) return;
+#if defined (__ORBIS__) || defined (__PSVITA__)
+ // ignore all players except player 0 - it's their profile that is currently being used
+ if(iPad!=0) return;
+#endif
+
+ ui.AnimateKeyPress(m_iPad, key, repeat, pressed, released);
+
+ switch(key)
+ {
+ case ACTION_MENU_OK:
+#ifdef __ORBIS__
+ case ACTION_MENU_TOUCHPAD_PRESS:
+#endif
+ sendInputToMovie(key, repeat, pressed, released);
+ break;
+ // #ifdef __PS3__
+ // case ACTION_MENU_Y:
+ // if(pressed)
+ // {
+ // // language select - switch to Greek for now
+ // if(app.GetMinecraftLanguage(iPad)==MINECRAFT_LANGUAGE_DEFAULT)
+ // {
+ // app.SetMinecraftLanguage(iPad,MINECRAFT_LANGUAGE_GREEK);
+ // }
+ // else
+ // {
+ // app.SetMinecraftLanguage(iPad,MINECRAFT_LANGUAGE_DEFAULT);
+ // }
+ // // reload the string table
+ // ui.SetupFont();
+ // app.loadStringTable();
+ // handleReload();
+ // }
+ // break;
+ // #endif
+ }
+}
+
+void UIScene_SaveMessage::handlePress(F64 controlId, F64 childId)
+{
+ switch((int)controlId)
+ {
+ case eControl_Confirm:
+
+ //CD - Added for audio
+ ui.PlayUISFX(eSFX_Press);
+
+ m_bIgnoreInput=true;
+
+#if defined(__PS3__) || defined(__ORBIS__) || defined(__PSVITA__)
+ // wait for the profile to be read - this has been kicked off earlier, so should be read by now
+ addTimer(PROFILE_LOADED_TIMER_ID,PROFILE_LOADED_TIMER_TIME);
+#else
+ ui.NavigateToHomeMenu();
+#endif
+ break;
+ };
+}
+
+void UIScene_SaveMessage::handleTimerComplete(int id)
+{
+ switch(id)
+ {
+ case PROFILE_LOADED_TIMER_ID:
+ {
+#if defined(__PS3__) || defined(__ORBIS__) || defined(__PSVITA__)
+ C4JStorage::eOptionsCallback eStatus=app.GetOptionsCallbackStatus(0);
+
+ switch(eStatus)
+ {
+ case C4JStorage::eOptions_Callback_Read:
+ case C4JStorage::eOptions_Callback_Read_FileNotFound:
+ case C4JStorage::eOptions_Callback_Read_Fail:
+#ifdef __PSVITA__
+ case C4JStorage::eOptions_Callback_Write_Fail:
+ case C4JStorage::eOptions_Callback_Write:
+#endif
+ // set defaults - which has already been done
+ killTimer(PROFILE_LOADED_TIMER_ID);
+ ui.NavigateToHomeMenu();
+ SQRNetworkManager::SafeToRespondToGameBootInvite();
+ app.SetOptionsCallbackStatus(0,C4JStorage::eOptions_Callback_Idle);
+ break;
+ case C4JStorage::eOptions_Callback_Read_CorruptDeleted:
+ killTimer(PROFILE_LOADED_TIMER_ID);
+ ui.NavigateToHomeMenu();
+ SQRNetworkManager::SafeToRespondToGameBootInvite();
+ app.SetOptionsCallbackStatus(0,C4JStorage::eOptions_Callback_Idle);
+ break;
+ case C4JStorage::eOptions_Callback_Read_Corrupt:
+ // get the user to delete the options file
+ app.DebugPrintf("Corrupt options file\n");
+ app.SetOptionsCallbackStatus(0,C4JStorage::eOptions_Callback_Read_CorruptDeletePending);
+ m_bIgnoreInput=false;
+ // give the option to delete the save
+ UINT uiIDA[1];
+ uiIDA[0]=IDS_CONFIRM_OK;
+ ui.RequestMessageBox(IDS_CORRUPT_FILE, IDS_CORRUPT_OPTIONS, uiIDA, 1,
+ 0,&UIScene_SaveMessage::DeleteOptionsDialogReturned,this, app.GetStringTable());
+ break;
+ }
+#endif
+ }
+
+ break;
+ }
+}
+
+#if defined(__PS3__) || defined(__ORBIS__) || defined(__PSVITA__)
+int UIScene_SaveMessage::DeleteOptionsDialogReturned(void *pParam,int iPad,C4JStorage::EMessageResult result)
+{
+ //UIScene_SaveMessage* pClass = (UIScene_SaveMessage*)pParam;
+
+ // kick off the delete
+ StorageManager.DeleteOptionsData(iPad);
+
+ return 0;
+}
+#endif