Counter Strike : Global Offensive Source Code
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

378 lines
13 KiB

//========= Copyright � 1996-2012, Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
//=============================================================================//
#include "engine_helper_ps3.h"
#if defined( _PS3 )
#include <np.h>
#endif
// memdbgon must be the last include file in a .cpp file!!!
#include <tier0/memdbgon.h>
#if defined( _PS3 )
#define ESRB_TEEN_RATING_AGE 13
#define AGE_RESTRICTION_DEFAULT ESRB_TEEN_RATING_AGE
#define AGE_RESTRICTION_MAX ESRB_TEEN_RATING_AGE
#define AGE_RESTRICTION_UAE AGE_RESTRICTION_DEFAULT// age for UAE
#define AGE_RESTRICTION_ARGENTINIA AGE_RESTRICTION_DEFAULT// age for Argentina
#define AGE_RESTRICTION_AUSTRIA AGE_RESTRICTION_DEFAULT// age for Austria
#define AGE_RESTRICTION_AUSTRALIA AGE_RESTRICTION_DEFAULT// age for Australia
#define AGE_RESTRICTION_BELGIUM AGE_RESTRICTION_DEFAULT// age for Belgium
#define AGE_RESTRICTION_BULGARIA AGE_RESTRICTION_DEFAULT// age for Bulgaria
#define AGE_RESTRICTION_BAHRAIN AGE_RESTRICTION_DEFAULT// age for Bahrain
#define AGE_RESTRICTION_BRAZIL AGE_RESTRICTION_DEFAULT// age for Brazil
#define AGE_RESTRICTION_CANADA AGE_RESTRICTION_DEFAULT// age for Canada
#define AGE_RESTRICTION_SWISS AGE_RESTRICTION_DEFAULT// age for Switzerland
#define AGE_RESTRICTION_CHILE AGE_RESTRICTION_DEFAULT// age for Chile
#define AGE_RESTRICTION_COLOMBIA AGE_RESTRICTION_DEFAULT// age for Colombia
#define AGE_RESTRICTION_CYPRUS AGE_RESTRICTION_DEFAULT// age for Cyprus
#define AGE_RESTRICTION_CZECH_REP AGE_RESTRICTION_DEFAULT// age for Czech Republic
#define AGE_RESTRICTION_GERMANY AGE_RESTRICTION_DEFAULT// age for Germany
#define AGE_RESTRICTION_DENMARK AGE_RESTRICTION_DEFAULT// age for Denmark
#define AGE_RESTRICTION_SPAIN AGE_RESTRICTION_DEFAULT// age for Spain
#define AGE_RESTRICTION_FINLAND AGE_RESTRICTION_DEFAULT// age for Finland
#define AGE_RESTRICTION_FRANCE AGE_RESTRICTION_DEFAULT// age for France
#define AGE_RESTRICTION_UK AGE_RESTRICTION_DEFAULT// age for UK
#define AGE_RESTRICTION_GREECE AGE_RESTRICTION_DEFAULT// age for Greece
#define AGE_RESTRICTION_HONG_KONG AGE_RESTRICTION_DEFAULT// age for Hong Kong
#define AGE_RESTRICTION_CROATIA AGE_RESTRICTION_DEFAULT// age for Croatia
#define AGE_RESTRICTION_HUNGARY AGE_RESTRICTION_DEFAULT// age for Hungary
#define AGE_RESTRICTION_INDONESIA AGE_RESTRICTION_DEFAULT// age for Indonesia
#define AGE_RESTRICTION_IRELAND AGE_RESTRICTION_DEFAULT// age for Ireland
#define AGE_RESTRICTION_ISREAL AGE_RESTRICTION_DEFAULT// age for Isreal
#define AGE_RESTRICTION_INDIA AGE_RESTRICTION_DEFAULT// age for India
#define AGE_RESTRICTION_ICELAND AGE_RESTRICTION_DEFAULT// age for Iceland
#define AGE_RESTRICTION_ITALY AGE_RESTRICTION_DEFAULT// age for Italy
#define AGE_RESTRICTION_JAPAN AGE_RESTRICTION_DEFAULT// age for Japan
#define AGE_RESTRICTION_KOREA AGE_RESTRICTION_DEFAULT// age for Korea
#define AGE_RESTRICTION_KUWAIT AGE_RESTRICTION_DEFAULT// age for Kuwait
#define AGE_RESTRICTION_LEBANON AGE_RESTRICTION_DEFAULT// age for Lebanon
#define AGE_RESTRICTION_LUXEMBOURG AGE_RESTRICTION_DEFAULT// age for Luxembourg
#define AGE_RESTRICTION_MALTA AGE_RESTRICTION_DEFAULT// age for Malta
#define AGE_RESTRICTION_MEXICO AGE_RESTRICTION_DEFAULT// age for Mexico
#define AGE_RESTRICTION_MALAYSIA AGE_RESTRICTION_DEFAULT// age for Malaysia
#define AGE_RESTRICTION_NETHERLANDS AGE_RESTRICTION_DEFAULT// age for Netherlands
#define AGE_RESTRICTION_NORWAY AGE_RESTRICTION_DEFAULT// age for Norway
#define AGE_RESTRICTION_NEW_ZEALAND AGE_RESTRICTION_DEFAULT// age for New Zealand
#define AGE_RESTRICTION_OMAN AGE_RESTRICTION_DEFAULT// age for Oman
#define AGE_RESTRICTION_PERU AGE_RESTRICTION_DEFAULT// age for Peru
#define AGE_RESTRICTION_POLAND AGE_RESTRICTION_DEFAULT// age for Poland
#define AGE_RESTRICTION_PORTUGAL AGE_RESTRICTION_DEFAULT// age for Portugal
#define AGE_RESTRICTION_QATAR AGE_RESTRICTION_DEFAULT// age for Qatar
#define AGE_RESTRICTION_ROMAINIA AGE_RESTRICTION_DEFAULT// age for Romania
#define AGE_RESTRICTION_RUSSIA AGE_RESTRICTION_DEFAULT// age for Russia
#define AGE_RESTRICTION_SAUDI_ARABIA AGE_RESTRICTION_DEFAULT// age for Saudi Arabia
#define AGE_RESTRICTION_SWEDEN AGE_RESTRICTION_DEFAULT// age for Sweden
#define AGE_RESTRICTION_SINGAPORE AGE_RESTRICTION_DEFAULT// age for Singapore
#define AGE_RESTRICTION_SLOVENIA AGE_RESTRICTION_DEFAULT// age for Slovenia
#define AGE_RESTRICTION_SLOVAKIA AGE_RESTRICTION_DEFAULT// age for Slovakia
#define AGE_RESTRICTION_THAILAND AGE_RESTRICTION_DEFAULT// age for Thailand
#define AGE_RESTRICTION_TURKEY AGE_RESTRICTION_DEFAULT// age for Turkey
#define AGE_RESTRICTION_TAIWAN AGE_RESTRICTION_DEFAULT// age for Taiwan
#define AGE_RESTRICTION_UKRAINE AGE_RESTRICTION_DEFAULT// age for Ukraine
#define AGE_RESTRICTION_UNITED_STATES AGE_RESTRICTION_DEFAULT// age for United States
#define AGE_RESTRICTION_SOUTH_AFRICA AGE_RESTRICTION_DEFAULT// age for South Africa
int EngineHelperPS3::GetAgeRestrictionByRegion( void )
{
SceNpCountryCode countryCode;
int langCode;
int ret = sceNpManagerGetAccountRegion( &countryCode, &langCode );
if ( ret < 0 )
{
return AGE_RESTRICTION_MAX;
}
if ( strcmp( countryCode.data, "ae" ) == 0 )
return AGE_RESTRICTION_UAE;// age for UAE
if ( strcmp( countryCode.data, "ar" ) == 0 )
return AGE_RESTRICTION_ARGENTINIA;// age for Argentina
if ( strcmp( countryCode.data, "at" ) == 0 )
return AGE_RESTRICTION_AUSTRIA;// age for Austria
if ( strcmp( countryCode.data, "au" ) == 0 )
return AGE_RESTRICTION_AUSTRALIA;// age for Australia
if ( strcmp( countryCode.data, "be" ) == 0 )
return AGE_RESTRICTION_BELGIUM;// age for Belgium
if ( strcmp( countryCode.data, "bg" ) == 0 )
return AGE_RESTRICTION_BULGARIA;// age for Bulgaria
if ( strcmp( countryCode.data, "bh" ) == 0 )
return AGE_RESTRICTION_BAHRAIN;// age for Bahrain
if ( strcmp( countryCode.data, "br" ) == 0 )
return AGE_RESTRICTION_BRAZIL;// age for Brazil
if ( strcmp( countryCode.data, "ca" ) == 0 )
return AGE_RESTRICTION_CANADA;// age for Canada
if ( strcmp( countryCode.data, "ch" ) == 0 )
return AGE_RESTRICTION_SWISS;// age for Switzerland
if ( strcmp( countryCode.data, "cl" ) == 0 )
return AGE_RESTRICTION_CHILE;// age for Chile
if ( strcmp( countryCode.data, "co" ) == 0 )
return AGE_RESTRICTION_COLOMBIA;// age for Colombia
if ( strcmp( countryCode.data, "cy" ) == 0 )
return AGE_RESTRICTION_CYPRUS;// age for Cyprus
if ( strcmp( countryCode.data, "cz" ) == 0 )
return AGE_RESTRICTION_CZECH_REP;// age for Czech Republic
if ( strcmp( countryCode.data, "de" ) == 0 )
return AGE_RESTRICTION_GERMANY;// age for Germany
if ( strcmp( countryCode.data, "dk" ) == 0 )
return AGE_RESTRICTION_DENMARK;// age for Denmark
if ( strcmp( countryCode.data, "es" ) == 0 )
return AGE_RESTRICTION_SPAIN;// age for Spain
if ( strcmp( countryCode.data, "fi" ) == 0 )
return AGE_RESTRICTION_FINLAND;// age for Finland
if ( strcmp( countryCode.data, "fr" ) == 0 )
return AGE_RESTRICTION_FRANCE;// age for France
if ( strcmp( countryCode.data, "gb" ) == 0 )
return AGE_RESTRICTION_UK;// age for UK
if ( strcmp( countryCode.data, "gr" ) == 0 )
return AGE_RESTRICTION_GREECE;// age for Greece
if ( strcmp( countryCode.data, "hk" ) == 0 )
return AGE_RESTRICTION_HONG_KONG;// age for Hong Kong
if ( strcmp( countryCode.data, "hr" ) == 0 )
return AGE_RESTRICTION_CROATIA;// age for Croatia
if ( strcmp( countryCode.data, "hu" ) == 0 )
return AGE_RESTRICTION_HUNGARY;// age for Hungary
if ( strcmp( countryCode.data, "id" ) == 0 )
return AGE_RESTRICTION_INDONESIA;// age for Indonesia
if ( strcmp( countryCode.data, "ie" ) == 0 )
return AGE_RESTRICTION_IRELAND;// age for Ireland
if ( strcmp( countryCode.data, "il" ) == 0 )
return AGE_RESTRICTION_ISREAL;// age for Isreal
if ( strcmp( countryCode.data, "in" ) == 0 )
return AGE_RESTRICTION_INDIA;// age for India
if ( strcmp( countryCode.data, "is" ) == 0 )
return AGE_RESTRICTION_ICELAND;// age for Iceland
if ( strcmp( countryCode.data, "it" ) == 0 )
return AGE_RESTRICTION_ITALY;// age for Italy
if ( strcmp( countryCode.data, "jp" ) == 0 )
return AGE_RESTRICTION_JAPAN;// age for Japan
if ( strcmp( countryCode.data, "kr" ) == 0 )
return AGE_RESTRICTION_KOREA;// age for Korea
if ( strcmp( countryCode.data, "kw" ) == 0 )
return AGE_RESTRICTION_KUWAIT;// age for Kuwait
if ( strcmp( countryCode.data, "lb" ) == 0 )
return AGE_RESTRICTION_LEBANON;// age for Lebanon
if ( strcmp( countryCode.data, "lu" ) == 0 )
return AGE_RESTRICTION_LUXEMBOURG;// age for Luxembourg
if ( strcmp( countryCode.data, "mt" ) == 0 )
return AGE_RESTRICTION_MALTA;// age for Malta
if ( strcmp( countryCode.data, "mx" ) == 0 )
return AGE_RESTRICTION_MEXICO;// age for Mexico
if ( strcmp( countryCode.data, "my" ) == 0 )
return AGE_RESTRICTION_MALAYSIA;// age for Malaysia
if ( strcmp( countryCode.data, "nl" ) == 0 )
return AGE_RESTRICTION_NETHERLANDS;// age for Netherlands
if ( strcmp( countryCode.data, "no" ) == 0 )
return AGE_RESTRICTION_NORWAY;// age for Norway
if ( strcmp( countryCode.data, "nz" ) == 0 )
return AGE_RESTRICTION_NEW_ZEALAND;// age for New Zealand
if ( strcmp( countryCode.data, "om" ) == 0 )
return AGE_RESTRICTION_OMAN;// age for Oman
if ( strcmp( countryCode.data, "pe" ) == 0 )
return AGE_RESTRICTION_PERU;// age for Peru
if ( strcmp( countryCode.data, "pl" ) == 0 )
return AGE_RESTRICTION_POLAND;// age for Poland
if ( strcmp( countryCode.data, "pt" ) == 0 )
return AGE_RESTRICTION_PORTUGAL;// age for Portugal
if ( strcmp( countryCode.data, "qa" ) == 0 )
return AGE_RESTRICTION_QATAR;// age for Qatar
if ( strcmp( countryCode.data, "ro" ) == 0 )
return AGE_RESTRICTION_ROMAINIA;// age for Romania
if ( strcmp( countryCode.data, "ru" ) == 0 )
return AGE_RESTRICTION_RUSSIA;// age for Russia
if ( strcmp( countryCode.data, "sa" ) == 0 )
return AGE_RESTRICTION_SAUDI_ARABIA;// age for Saudi Arabia
if ( strcmp( countryCode.data, "se" ) == 0 )
return AGE_RESTRICTION_SWEDEN;// age for Sweden
if ( strcmp( countryCode.data, "sg" ) == 0 )
return AGE_RESTRICTION_SINGAPORE;// age for Singapore
if ( strcmp( countryCode.data, "si" ) == 0 )
return AGE_RESTRICTION_SLOVENIA;// age for Slovenia
if ( strcmp( countryCode.data, "sk" ) == 0 )
return AGE_RESTRICTION_SLOVAKIA;// age for Slovakia
if ( strcmp( countryCode.data, "th" ) == 0 )
return AGE_RESTRICTION_THAILAND;// age for Thailand
if ( strcmp( countryCode.data, "tr" ) == 0 )
return AGE_RESTRICTION_TURKEY;// age for Turkey
if ( strcmp( countryCode.data, "tw" ) == 0 )
return AGE_RESTRICTION_TAIWAN;// age for Taiwan
if ( strcmp( countryCode.data, "ua" ) == 0 )
return AGE_RESTRICTION_UKRAINE;// age for Ukraine
if ( strcmp( countryCode.data, "us" ) == 0 )
return AGE_RESTRICTION_UNITED_STATES;// age for United States
if ( strcmp( countryCode.data, "za" ) == 0 )
return AGE_RESTRICTION_SOUTH_AFRICA;// age for South Africa
return AGE_RESTRICTION_DEFAULT;
}
// note: We assume if we aren't connected or initialized, that the chat is NOT restricted
bool EngineHelperPS3::PS3_IsUserRestrictedFromChat( void )
{
int isRestricted;
int ret = sceNpManagerGetChatRestrictionFlag( &isRestricted );
if (ret < 0)
{
// handle the error
if ( ret == SCE_NP_ERROR_NOT_INITIALIZED )
{
// not yet initialized... check back in a bit
return false;
}
if ( ret == SCE_NP_ERROR_INVALID_STATE )
{
// invalid state... sign in procedure hasn't been completed yet
return false;
}
if ( ret == SCE_NP_ERROR_OFFLINE )
{
// we're offline, no account info available
return false;
}
return false;
}
if ( isRestricted )
{
return true;
}
else
{
return false;
}
}
// NOTE: If we're not signed in yet, or not initialized, we consider this as not restricted from online
bool EngineHelperPS3::PS3_IsUserRestrictedFromOnline( void )
{
int age;
int isRestricted;
int ret;
ret = sceNpManagerGetAccountAge( &age );
if ( ret < 0 )
{
if ( ret == SCE_NP_ERROR_NOT_INITIALIZED )
{
// not yet initialized... check back in a bit
return false;
}
if ( ret == SCE_NP_ERROR_INVALID_STATE )
{
// invalid state... sign in procedure hasn't been completed yet
return false;
}
if ( ret == SCE_NP_ERROR_OFFLINE )
{
// we're offline, no account info available
return false;
}
return false;
}
ret = sceNpManagerGetContentRatingFlag( &isRestricted, &age );
if ( isRestricted && age < GetAgeRestrictionByRegion() )
{
return true;
}
else
{
return false;
}
}
bool EngineHelperPS3::PS3_PendingInvitesFound( void )
{
uint32_t count = 0;
if ( sceNpBasicGetMessageEntryCount( SCE_NP_BASIC_MESSAGE_INFO_TYPE_BOOTABLE_INVITATION, &count ) == 0 )
{
if ( count > 0 )
{
return true;
}
}
return false;
}
void EngineHelperPS3::PS3_ShowInviteOverlay( void )
{
sceNpBasicRecvMessageCustom( SCE_NP_BASIC_MESSAGE_MAIN_TYPE_INVITE,
SCE_NP_BASIC_RECV_MESSAGE_OPTIONS_INCLUDE_BOOTABLE,
SYS_MEMORY_CONTAINER_ID_INVALID );
}
#endif // _PS3