aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.Client/Common/UI/UIScene_Intro.cpp
blob: f4aefc40533b69b26b332f68ed48e3e44613c07a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
#include "stdafx.h"
#include "UI.h"
#include "UIScene_Intro.h"


UIScene_Intro::UIScene_Intro(int iPad, void *initData, UILayer *parentLayer) : UIScene(iPad, parentLayer)
{
	// Setup all the Iggy references we need for this scene
	initialiseMovie();
	m_bIgnoreNavigate = false;
	m_bAnimationEnded = false;

	bool bSkipESRB = false;
	bool bChina = false;
#if defined(__PS3__) || defined(__ORBIS__) || defined(__PSVITA__)
	bSkipESRB = app.GetProductSKU() != e_sku_SCEA;
#elif defined(_XBOX) || defined(_DURANGO)
	bSkipESRB = !ProfileManager.LocaleIsUSorCanada();
#endif

#ifdef _DURANGO
	bChina = ProfileManager.LocaleIsChina();
#endif
	// 4J Stu - These map to values in the Actionscript
#ifdef _WINDOWS64
	int platformIdx = 0;
#elif defined(_XBOX)
	int platformIdx = 1;
#elif defined(_DURANGO)
	int platformIdx = 2;
#elif defined(__PS3__)
	int platformIdx = 3;
#elif defined(__ORBIS__)
	int platformIdx = 4;
#elif defined(__PSVITA__)
	int platformIdx = 5;
#endif

	IggyDataValue result;
	IggyDataValue value[3];
	value[0].type = IGGY_DATATYPE_number;
	value[0].number = platformIdx;

	value[1].type = IGGY_DATATYPE_boolean;
	value[1].boolval = bChina?true:bSkipESRB;

	value[2].type = IGGY_DATATYPE_boolean;
	value[2].boolval = bChina;

	IggyResult out = IggyPlayerCallMethodRS ( getMovie() , &result, IggyPlayerRootPath( getMovie() ), m_funcSetIntroPlatform , 3 , value );

#ifdef __PSVITA__
	// initialise vita touch controls with ids
	m_TouchToSkip.init(0);
#endif
}

wstring UIScene_Intro::getMoviePath()
{
	return L"Intro";
}

void UIScene_Intro::handleInput(int iPad, int key, bool repeat, bool pressed, bool released, bool &handled)
{
	ui.AnimateKeyPress(m_iPad, key, repeat, pressed, released);

	switch(key)
	{
	case ACTION_MENU_OK:
#ifdef __ORBIS__
	case ACTION_MENU_TOUCHPAD_PRESS:
#endif
		if(!m_bIgnoreNavigate)
		{
			m_bIgnoreNavigate = true;
			//ui.NavigateToHomeMenu();
#if defined(__PS3__) || defined(__ORBIS__) || defined (__PSVITA__)

			// has the user seen the EULA already ? We need their options file loaded for this
			C4JStorage::eOptionsCallback eStatus=app.GetOptionsCallbackStatus(0);
			switch(eStatus)
			{
			case C4JStorage::eOptions_Callback_Read:
			case C4JStorage::eOptions_Callback_Read_FileNotFound:
				// we've either read it, or it wasn't found
				#if 0
				if(app.GetGameSettings(0,eGameSetting_PS3_EULA_Read)==0)
				{
					ui.NavigateToScene(0,eUIScene_EULA);
				}
				else
				#endif
				{
					ui.NavigateToScene(0,eUIScene_SaveMessage);
				}
				break;
			default:
				#if 0
				ui.NavigateToScene(0,eUIScene_EULA);		
				#else
				ui.NavigateToScene(0,eUIScene_SaveMessage);	
				#endif
				break;
			}
#elif defined _XBOX_ONE
			ui.NavigateToScene(0,eUIScene_MainMenu);
#else
			ui.NavigateToScene(0,eUIScene_SaveMessage);
#endif
		}
		break;
	}
}

#ifdef __PSVITA__
void UIScene_Intro::handleTouchInput(unsigned int iPad, S32 x, S32 y, int iId, bool bPressed, bool bRepeat, bool bReleased)
{
	if(bReleased)
	{
		bool handled = false;
		handleInput(iPad, ACTION_MENU_OK, false, true, false, handled);
	}
}
#endif

void UIScene_Intro::handleAnimationEnd()
{
	if(!m_bIgnoreNavigate)
	{
		m_bIgnoreNavigate = true;
		//ui.NavigateToHomeMenu();
#if defined(__PS3__) || defined(__ORBIS__) || defined(__PSVITA__)
		// has the user seen the EULA already ? We need their options file loaded for this
		C4JStorage::eOptionsCallback eStatus=app.GetOptionsCallbackStatus(0);
		switch(eStatus)
		{
		case C4JStorage::eOptions_Callback_Read:
		case C4JStorage::eOptions_Callback_Read_FileNotFound:
			// we've either read it, or it wasn't found
			#if 0
			if(app.GetGameSettings(0,eGameSetting_PS3_EULA_Read)==0)
			{
				ui.NavigateToScene(0,eUIScene_EULA);
			}
			else
			#endif
			{
				ui.NavigateToScene(0,eUIScene_SaveMessage);
			}
			break;
		default:
			#if 0
			ui.NavigateToScene(0,eUIScene_EULA);		
			#else
			ui.NavigateToScene(0,eUIScene_SaveMessage);	
			#endif			
		break;
		}


#elif defined _XBOX_ONE
		// Don't navigate to the main menu if we don't have focus, as we could have the quadrant sign-in or a join game timer screen running, and then when Those finish they'll
		// give the main menu focus which clears the signed in players and therefore breaks transitioning into the game
		if( hasFocus( m_iPad ) )
		{
			ui.NavigateToScene(0,eUIScene_MainMenu);
		}
		else
		{
			m_bAnimationEnded = true;
		}
#else
		ui.NavigateToScene(0,eUIScene_SaveMessage);
#endif
	}
}

void UIScene_Intro::handleGainFocus(bool navBack)
{
	// Only relevant on xbox one - if we didn't navigate to the main menu at animation end due to the timer or quadrant sign-in being up, then we'll need to
	// do it now in case the user has cancelled or joining a game failed
	if( m_bAnimationEnded )
	{
		ui.NavigateToScene(0,eUIScene_MainMenu);
	}
}