feat: TU19 (Dec 2014) Features & Content (#155)
* try to resolve merge conflict
* feat: TU19 (Dec 2014) Features & Content (#32)
* December 2014 files
* Working release build
* Fix compilation issues
* Add sound to Windows64Media
* Add DLC content and force Tutorial DLC
* Revert "Add DLC content and force Tutorial DLC"
This reverts commit 97a4399472.
* Disable broken light packing
* Disable breakpoint during DLC texture map load
Allows DLC loading but the DLC textures are still broken
* Fix post build not working
* ...
* fix vs2022 build
* fix cmake build
---------
Co-authored-by: Loki <lokirautio@gmail.com>
This commit is contained in:
@@ -222,170 +222,7 @@ void UIScene_SkinSelectMenu::handleInput(int iPad, int key, bool repeat, bool pr
|
||||
#endif
|
||||
if(pressed)
|
||||
{
|
||||
ui.AnimateKeyPress(iPad, key, repeat, pressed, released);
|
||||
// if the profile data has been changed, then force a profile write
|
||||
// It seems we're allowed to break the 5 minute rule if it's the result of a user action
|
||||
switch(m_packIndex)
|
||||
{
|
||||
case SKIN_SELECT_PACK_DEFAULT:
|
||||
app.SetPlayerSkin(iPad, m_skinIndex);
|
||||
app.SetPlayerCape(iPad, 0);
|
||||
m_currentSkinPath = app.GetPlayerSkinName(iPad);
|
||||
m_originalSkinId = app.GetPlayerSkinId(iPad);
|
||||
setCharacterSelected(true);
|
||||
ui.PlayUISFX(eSFX_Press);
|
||||
break;
|
||||
case SKIN_SELECT_PACK_FAVORITES:
|
||||
if(app.GetPlayerFavoriteSkinsCount(iPad)>0)
|
||||
{
|
||||
// get the pack number from the skin id
|
||||
wchar_t chars[256];
|
||||
swprintf(chars, 256, L"dlcskin%08d.png", app.GetPlayerFavoriteSkin(iPad,m_skinIndex));
|
||||
|
||||
DLCPack *Pack=app.m_dlcManager.getPackContainingSkin(chars);
|
||||
|
||||
if(Pack)
|
||||
{
|
||||
DLCSkinFile *skinFile = Pack->getSkinFile(chars);
|
||||
app.SetPlayerSkin(iPad, skinFile->getPath());
|
||||
app.SetPlayerCape(iPad, skinFile->getParameterAsString(DLCManager::e_DLCParamType_Cape));
|
||||
setCharacterSelected(true);
|
||||
m_currentSkinPath = app.GetPlayerSkinName(iPad);
|
||||
m_originalSkinId = app.GetPlayerSkinId(iPad);
|
||||
app.SetPlayerFavoriteSkinsPos(iPad,m_skinIndex);
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
if( m_currentPack != NULL )
|
||||
{
|
||||
DLCSkinFile *skinFile = m_currentPack->getSkinFile(m_skinIndex);
|
||||
|
||||
if ( !skinFile->getParameterAsBool( DLCManager::e_DLCParamType_Free ) // Is this a free skin?
|
||||
&& !m_currentPack->hasPurchasedFile( DLCManager::e_DLCType_Skin, skinFile->getPath() ) // do we have a license?
|
||||
)
|
||||
{
|
||||
// 4J-PB - check for a patch
|
||||
#ifdef __ORBIS__
|
||||
// 4J-PB - Check if there is a patch for the game
|
||||
int errorCode = ProfileManager.getNPAvailability(ProfileManager.GetPrimaryPad());
|
||||
|
||||
bool bPatchAvailable;
|
||||
switch(errorCode)
|
||||
{
|
||||
case SCE_NP_ERROR_LATEST_PATCH_PKG_EXIST:
|
||||
case SCE_NP_ERROR_LATEST_PATCH_PKG_DOWNLOADED:
|
||||
bPatchAvailable=true;
|
||||
break;
|
||||
default:
|
||||
bPatchAvailable=false;
|
||||
break;
|
||||
}
|
||||
|
||||
if(bPatchAvailable)
|
||||
{
|
||||
int32_t ret=sceErrorDialogInitialize();
|
||||
m_bErrorDialogRunning=true;
|
||||
if ( ret==SCE_OK )
|
||||
{
|
||||
SceErrorDialogParam param;
|
||||
sceErrorDialogParamInitialize( ¶m );
|
||||
// 4J-PB - We want to display the option to get the patch now
|
||||
param.errorCode = SCE_NP_ERROR_LATEST_PATCH_PKG_DOWNLOADED;//pClass->m_errorCode;
|
||||
ret = sceUserServiceGetInitialUser( ¶m.userId );
|
||||
if ( ret == SCE_OK )
|
||||
{
|
||||
ret=sceErrorDialogOpen( ¶m );
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
// no
|
||||
UINT uiIDA[1] = { IDS_OK };
|
||||
#ifdef __ORBIS__
|
||||
// Check if PSN is unavailable because of age restriction
|
||||
int npAvailability = ProfileManager.getNPAvailability(iPad);
|
||||
if (npAvailability == SCE_NP_ERROR_AGE_RESTRICTION)
|
||||
{
|
||||
ui.RequestMessageBox(IDS_ONLINE_SERVICE_TITLE, IDS_CONTENT_RESTRICTION, uiIDA, 1, iPad, NULL, NULL, app.GetStringTable());
|
||||
}
|
||||
else
|
||||
#endif
|
||||
// We need to upsell the full version
|
||||
if(ProfileManager.IsGuest(iPad))
|
||||
{
|
||||
// can't buy
|
||||
ui.RequestMessageBox(IDS_PRO_GUESTPROFILE_TITLE, IDS_PRO_GUESTPROFILE_TEXT, uiIDA, 1,iPad,NULL,NULL,app.GetStringTable(),NULL,0,false);
|
||||
}
|
||||
// are we online?
|
||||
else if(!ProfileManager.IsSignedInLive(iPad))
|
||||
{
|
||||
showNotOnlineDialog(iPad);
|
||||
}
|
||||
else
|
||||
{
|
||||
// upsell
|
||||
#ifdef _XBOX
|
||||
DLC_INFO *pDLCInfo = app.GetDLCInfoForTrialOfferID(m_currentPack->getPurchaseOfferId());
|
||||
ULONGLONG ullOfferID_Full;
|
||||
|
||||
if(pDLCInfo!=NULL)
|
||||
{
|
||||
ullOfferID_Full=pDLCInfo->ullOfferID_Full;
|
||||
}
|
||||
else
|
||||
{
|
||||
ullOfferID_Full=m_currentPack->getPurchaseOfferId();
|
||||
}
|
||||
|
||||
// tell sentient about the upsell of the full version of the skin pack
|
||||
TelemetryManager->RecordUpsellPresented(iPad, eSet_UpsellID_Skin_DLC, ullOfferID_Full & 0xFFFFFFFF);
|
||||
#endif
|
||||
bool bContentRestricted=false;
|
||||
#if defined(__PS3__) || defined(__PSVITA__)
|
||||
ProfileManager.GetChatAndContentRestrictions(m_iPad,true,NULL,&bContentRestricted,NULL);
|
||||
#endif
|
||||
if(bContentRestricted)
|
||||
{
|
||||
#if !(defined(_XBOX) || defined(_WIN64)) // 4J Stu - Temp to get the win build running, but so we check this for other platforms
|
||||
// you can't see the store
|
||||
UINT uiIDA[1] = { IDS_CONFIRM_OK };
|
||||
ui.RequestMessageBox(IDS_ONLINE_SERVICE_TITLE, IDS_CONTENT_RESTRICTION, uiIDA, 1, iPad,NULL,this, app.GetStringTable(),NULL,0,false);
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
// 4J-PB - need to check for an empty store
|
||||
#if defined __ORBIS__ || defined __PSVITA__ || defined __PS3__
|
||||
if(app.CheckForEmptyStore(iPad)==false)
|
||||
#endif
|
||||
{
|
||||
this->m_bIgnoreInput = true;
|
||||
|
||||
UINT uiIDA[2] = { IDS_CONFIRM_OK, IDS_CONFIRM_CANCEL };
|
||||
ui.RequestMessageBox(IDS_UNLOCK_DLC_TITLE, IDS_UNLOCK_DLC_SKIN, uiIDA, 2, iPad,&UIScene_SkinSelectMenu::UnlockSkinReturned,this,app.GetStringTable(),NULL,0,false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
app.SetPlayerSkin(iPad, skinFile->getPath());
|
||||
app.SetPlayerCape(iPad, skinFile->getParameterAsString(DLCManager::e_DLCParamType_Cape));
|
||||
setCharacterSelected(true);
|
||||
m_currentSkinPath = app.GetPlayerSkinName(iPad);
|
||||
m_originalSkinId = app.GetPlayerSkinId(iPad);
|
||||
|
||||
// push this onto the favorite list
|
||||
AddFavoriteSkin(iPad,GET_DLC_SKIN_ID_FROM_BITMASK(m_originalSkinId));
|
||||
}
|
||||
}
|
||||
|
||||
ui.PlayUISFX(eSFX_Press);
|
||||
break;
|
||||
}
|
||||
InputActionOK(iPad);
|
||||
}
|
||||
break;
|
||||
case ACTION_MENU_UP:
|
||||
@@ -614,17 +451,62 @@ void UIScene_SkinSelectMenu::InputActionOK(unsigned int iPad)
|
||||
//if(true)
|
||||
if(!m_currentPack->hasPurchasedFile( DLCManager::e_DLCType_Skin, skinFile->getPath() ))
|
||||
{
|
||||
#ifdef __ORBIS__
|
||||
// 4J-PB - Check if there is a patch for the game
|
||||
int errorCode = ProfileManager.getNPAvailability(ProfileManager.GetPrimaryPad());
|
||||
|
||||
bool bPatchAvailable;
|
||||
switch(errorCode)
|
||||
{
|
||||
case SCE_NP_ERROR_LATEST_PATCH_PKG_EXIST:
|
||||
case SCE_NP_ERROR_LATEST_PATCH_PKG_DOWNLOADED:
|
||||
bPatchAvailable=true;
|
||||
break;
|
||||
default:
|
||||
bPatchAvailable=false;
|
||||
break;
|
||||
}
|
||||
|
||||
if(bPatchAvailable)
|
||||
{
|
||||
int32_t ret=sceErrorDialogInitialize();
|
||||
m_bErrorDialogRunning=true;
|
||||
if ( ret==SCE_OK )
|
||||
{
|
||||
SceErrorDialogParam param;
|
||||
sceErrorDialogParamInitialize( ¶m );
|
||||
// 4J-PB - We want to display the option to get the patch now
|
||||
param.errorCode = SCE_NP_ERROR_LATEST_PATCH_PKG_DOWNLOADED;//pClass->m_errorCode;
|
||||
ret = sceUserServiceGetInitialUser( ¶m.userId );
|
||||
if ( ret == SCE_OK )
|
||||
{
|
||||
ret=sceErrorDialogOpen( ¶m );
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
// no
|
||||
UINT uiIDA[1];
|
||||
uiIDA[0]=IDS_OK;
|
||||
|
||||
#ifdef __ORBIS__
|
||||
// Check if PSN is unavailable because of age restriction
|
||||
int npAvailability = ProfileManager.getNPAvailability(iPad);
|
||||
if (npAvailability == SCE_NP_ERROR_AGE_RESTRICTION)
|
||||
{
|
||||
ui.RequestErrorMessage(IDS_ONLINE_SERVICE_TITLE, IDS_CONTENT_RESTRICTION, uiIDA, 1, iPad);
|
||||
}
|
||||
else
|
||||
#endif
|
||||
// We need to upsell the full version
|
||||
if(ProfileManager.IsGuest(iPad))
|
||||
{
|
||||
// can't buy
|
||||
ui.RequestMessageBox(IDS_PRO_GUESTPROFILE_TITLE, IDS_PRO_GUESTPROFILE_TEXT, uiIDA, 1,iPad,NULL,NULL,app.GetStringTable(),NULL,0,false);
|
||||
ui.RequestAlertMessage(IDS_PRO_GUESTPROFILE_TITLE, IDS_PRO_GUESTPROFILE_TEXT, uiIDA, 1,iPad);
|
||||
}
|
||||
#if defined(__PS3__) || defined(__ORBIS__)
|
||||
#if defined(__PS3__) || defined(__ORBIS__) || defined __PSVITA__
|
||||
// are we online?
|
||||
else if(!ProfileManager.IsSignedInLive(iPad))
|
||||
{
|
||||
@@ -656,11 +538,11 @@ void UIScene_SkinSelectMenu::InputActionOK(unsigned int iPad)
|
||||
#endif
|
||||
if(bContentRestricted)
|
||||
{
|
||||
#if !(defined(_XBOX) || defined(_WIN64)) // 4J Stu - Temp to get the win build running, but so we check this for other platforms
|
||||
#if !(defined(_XBOX) || defined(_WINDOWS64) || defined(_XBOX_ONE)) // 4J Stu - Temp to get the win build running, but so we check this for other platforms
|
||||
// you can't see the store
|
||||
UINT uiIDA[1];
|
||||
uiIDA[0]=IDS_CONFIRM_OK;
|
||||
ui.RequestMessageBox(IDS_ONLINE_SERVICE_TITLE, IDS_CONTENT_RESTRICTION, uiIDA, 1, ProfileManager.GetPrimaryPad(),NULL,this, app.GetStringTable(),NULL,0,false);
|
||||
ui.RequestAlertMessage(IDS_ONLINE_SERVICE_TITLE, IDS_CONTENT_RESTRICTION, uiIDA, 1, iPad);
|
||||
#endif
|
||||
}
|
||||
else
|
||||
@@ -674,7 +556,7 @@ void UIScene_SkinSelectMenu::InputActionOK(unsigned int iPad)
|
||||
renableInputAfterOperation = false;
|
||||
|
||||
UINT uiIDA[2] = { IDS_CONFIRM_OK, IDS_CONFIRM_CANCEL };
|
||||
ui.RequestMessageBox(IDS_UNLOCK_DLC_TITLE, IDS_UNLOCK_DLC_SKIN, uiIDA, 2, iPad,&UIScene_SkinSelectMenu::UnlockSkinReturned,this,app.GetStringTable(),NULL,0,false);
|
||||
ui.RequestAlertMessage(IDS_UNLOCK_DLC_TITLE, IDS_UNLOCK_DLC_SKIN, uiIDA, 2, iPad,&UIScene_SkinSelectMenu::UnlockSkinReturned,this);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -703,7 +585,10 @@ void UIScene_SkinSelectMenu::InputActionOK(unsigned int iPad)
|
||||
AddFavoriteSkin(iPad,GET_DLC_SKIN_ID_FROM_BITMASK(m_originalSkinId));
|
||||
}
|
||||
|
||||
if (renableInputAfterOperation) m_bIgnoreInput = false;
|
||||
if (renableInputAfterOperation)
|
||||
{
|
||||
m_bIgnoreInput = false;
|
||||
}
|
||||
}
|
||||
|
||||
ui.PlayUISFX(eSFX_Press);
|
||||
@@ -1652,7 +1537,18 @@ void UIScene_SkinSelectMenu::showNotOnlineDialog(int iPad)
|
||||
SQRNetworkManager_PS3::AttemptPSNSignIn(NULL, this);
|
||||
|
||||
#elif defined(__PSVITA__)
|
||||
SQRNetworkManager_Vita::AttemptPSNSignIn(NULL, this);
|
||||
if(CGameNetworkManager::usingAdhocMode() && SQRNetworkManager_AdHoc_Vita::GetAdhocStatus())
|
||||
{
|
||||
// we're in adhoc mode, we really need to ask before disconnecting
|
||||
UINT uiIDA[2];
|
||||
uiIDA[0]=IDS_PRO_NOTONLINE_ACCEPT;
|
||||
uiIDA[1]=IDS_CANCEL;
|
||||
ui.RequestErrorMessage(IDS_PRO_NOTONLINE_TITLE, IDS_PRO_NOTONLINE_TEXT, uiIDA, 2, ProfileManager.GetPrimaryPad(),&UIScene_SkinSelectMenu::MustSignInReturned,NULL);
|
||||
}
|
||||
else
|
||||
{
|
||||
SQRNetworkManager_Vita::AttemptPSNSignIn(NULL, this);
|
||||
}
|
||||
|
||||
#elif defined(__ORBIS__)
|
||||
SQRNetworkManager_Orbis::AttemptPSNSignIn(NULL, this, false, iPad);
|
||||
@@ -1660,7 +1556,7 @@ void UIScene_SkinSelectMenu::showNotOnlineDialog(int iPad)
|
||||
#elif defined(_DURANGO)
|
||||
|
||||
UINT uiIDA[1] = { IDS_CONFIRM_OK };
|
||||
ui.RequestMessageBox(IDS_PRO_NOTONLINE_TITLE, IDS_PRO_XBOXLIVE_NOTIFICATION, uiIDA, 1, iPad, NULL, NULL, app.GetStringTable() );
|
||||
ui.RequestErrorMessage(IDS_PRO_NOTONLINE_TITLE, IDS_PRO_XBOXLIVE_NOTIFICATION, uiIDA, 1, iPad );
|
||||
|
||||
#endif
|
||||
}
|
||||
@@ -1723,9 +1619,9 @@ int UIScene_SkinSelectMenu::UnlockSkinReturned(void *pParam,int iPad,C4JStorage:
|
||||
app.Checkout(chSkuID);
|
||||
}
|
||||
}
|
||||
// need to re-enable input because the user can back out of the store purchase, and we'll be stuck
|
||||
pScene->m_bIgnoreInput = false;
|
||||
}
|
||||
// need to re-enable input because the user can back out of the store purchase, and we'll be stuck
|
||||
pScene->m_bIgnoreInput = false; // MGH - moved this to outside the pSONYDLCInfo, so we don't get stuck
|
||||
#elif defined _XBOX_ONE
|
||||
StorageManager.InstallOffer(1,(WCHAR *)(pScene->m_currentPack->getPurchaseOfferId().c_str()), &RenableInput, pScene, NULL);
|
||||
#endif
|
||||
@@ -1810,4 +1706,32 @@ void UIScene_SkinSelectMenu::HandleDLCLicenseChange()
|
||||
// update the lock flag
|
||||
handleSkinIndexChanged();
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
#ifdef __PSVITA__
|
||||
int UIScene_SkinSelectMenu::MustSignInReturned(void *pParam,int iPad,C4JStorage::EMessageResult result)
|
||||
{
|
||||
if(result==C4JStorage::EMessage_ResultAccept)
|
||||
{
|
||||
#ifdef __PS3__
|
||||
SQRNetworkManager_PS3::AttemptPSNSignIn(&UIScene_SkinSelectMenu::PSNSignInReturned, pParam,true);
|
||||
#elif defined __PSVITA__
|
||||
SQRNetworkManager_Vita::AttemptPSNSignIn(&UIScene_SkinSelectMenu::PSNSignInReturned, pParam,true);
|
||||
#elif defined __ORBIS__
|
||||
SQRNetworkManager_Orbis::AttemptPSNSignIn(&UIScene_SkinSelectMenu::PSNSignInReturned, pParam,true);
|
||||
#endif
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int UIScene_SkinSelectMenu::PSNSignInReturned(void* pParam, bool bContinue, int iPad)
|
||||
{
|
||||
if( bContinue )
|
||||
{
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
#endif // __PSVITA__
|
||||
Reference in New Issue
Block a user