first commit
This commit is contained in:
68
Minecraft.Client/PSVita/Sentient/DynamicConfigurations.h
Normal file
68
Minecraft.Client/PSVita/Sentient/DynamicConfigurations.h
Normal file
@@ -0,0 +1,68 @@
|
||||
#pragma once
|
||||
|
||||
// 4J Stu - This file defines the id's for the dynamic configurations that we are currently using
|
||||
// as well as the format of the data in them
|
||||
|
||||
/***********************
|
||||
*
|
||||
* TRIAL TIMER
|
||||
*
|
||||
************************/
|
||||
|
||||
#define DYNAMIC_CONFIG_TRIAL_ID 0
|
||||
#define DYNAMIC_CONFIG_TRIAL_VERSION 1
|
||||
#define DYNAMIC_CONFIG_DEFAULT_TRIAL_TIME 2400 //40 mins 1200 // 20 mins //300; // 5 minutes
|
||||
|
||||
class MinecraftDynamicConfigurations
|
||||
{
|
||||
private:
|
||||
enum EDynamic_Configs
|
||||
{
|
||||
eDynamic_Config_Trial,
|
||||
|
||||
eDynamic_Config_Max,
|
||||
};
|
||||
|
||||
/***********************
|
||||
*
|
||||
* TRIAL TIMER
|
||||
*
|
||||
************************/
|
||||
|
||||
// 4J Stu - The first 4 bytes define a version number, that defines the structure of the data
|
||||
// After reading those bytes into a DWORD, the remainder of the data should be the size of the
|
||||
// relevant struct and can be cast to the struct
|
||||
struct _dynamic_config_trial_data_version1
|
||||
{
|
||||
// The time in seconds that the player can play the trial for
|
||||
DWORD trialTimeSeconds;
|
||||
|
||||
_dynamic_config_trial_data_version1() { trialTimeSeconds = DYNAMIC_CONFIG_DEFAULT_TRIAL_TIME; }
|
||||
};
|
||||
|
||||
typedef _dynamic_config_trial_data_version1 Dynamic_Config_Trial_Data;
|
||||
|
||||
// Stored configurations
|
||||
static Dynamic_Config_Trial_Data trialData;
|
||||
|
||||
static bool s_bFirstUpdateStarted;
|
||||
static bool s_bUpdatedConfigs[eDynamic_Config_Max];
|
||||
static EDynamic_Configs s_eCurrentConfig;
|
||||
static size_t s_currentConfigSize;
|
||||
|
||||
static size_t s_dataWrittenSize;
|
||||
static byte *s_dataWritten;
|
||||
|
||||
public:
|
||||
static void Tick();
|
||||
|
||||
static DWORD GetTrialTime();
|
||||
|
||||
private:
|
||||
static void UpdateAllConfigurations();
|
||||
static void UpdateNextConfiguration();
|
||||
static void UpdateConfiguration(EDynamic_Configs id);
|
||||
|
||||
static void GetSizeCompletedCallback(HRESULT taskResult, void *userCallbackData);
|
||||
static void GetDataCompletedCallback(HRESULT taskResult, void *userCallbackData);
|
||||
};
|
||||
3
Minecraft.Client/PSVita/Sentient/MinecraftTelemetry.h
Normal file
3
Minecraft.Client/PSVita/Sentient/MinecraftTelemetry.h
Normal file
@@ -0,0 +1,3 @@
|
||||
#include "SentientTelemetryCommon.h"
|
||||
#include "TelemetryEnum.h"
|
||||
#include "SentientStats.h"
|
||||
83
Minecraft.Client/PSVita/Sentient/SentientManager.h
Normal file
83
Minecraft.Client/PSVita/Sentient/SentientManager.h
Normal file
@@ -0,0 +1,83 @@
|
||||
#pragma once
|
||||
#include "MinecraftTelemetry.h"
|
||||
|
||||
class CSentientManager
|
||||
{
|
||||
public:
|
||||
enum ETelemetryEvent
|
||||
{
|
||||
eTelemetry_PlayerSessionStart,
|
||||
eTelemetry_PlayerSessionExit,
|
||||
eTelemetry_HeartBeat,
|
||||
eTelemetry_LevelStart,
|
||||
eTelemetry_LevelExit,
|
||||
eTelemetry_LevelSaveOrCheckpoint,
|
||||
eTelemetry_PauseOrInactive,
|
||||
eTelemetry_UnpauseOrActive,
|
||||
eTelemetry_MenuShown,
|
||||
eTelemetry_AchievementUnlocked,
|
||||
eTelemetry_MediaShareUpload,
|
||||
eTelemetry_UpsellPresented,
|
||||
eTelemetry_UpsellResponded,
|
||||
eTelemetry_PlayerDiedOrFailed,
|
||||
eTelemetry_EnemyKilledOrOvercome,
|
||||
};
|
||||
|
||||
HRESULT Init();
|
||||
HRESULT Tick();
|
||||
|
||||
HRESULT Flush();
|
||||
|
||||
BOOL RecordPlayerSessionStart(DWORD dwUserId);
|
||||
BOOL RecordPlayerSessionExit(DWORD dwUserId, int exitStatus);
|
||||
BOOL RecordHeartBeat(DWORD dwUserId);
|
||||
BOOL RecordLevelStart(DWORD dwUserId, ESen_FriendOrMatch friendsOrMatch, ESen_CompeteOrCoop competeOrCoop, int difficulty, DWORD numberOfLocalPlayers, DWORD numberOfOnlinePlayers);
|
||||
BOOL RecordLevelExit(DWORD dwUserId, ESen_LevelExitStatus levelExitStatus);
|
||||
BOOL RecordLevelSaveOrCheckpoint(DWORD dwUserId, INT saveOrCheckPointID, INT saveSizeInBytes);
|
||||
BOOL RecordLevelResume(DWORD dwUserId, ESen_FriendOrMatch friendsOrMatch, ESen_CompeteOrCoop competeOrCoop, int difficulty, DWORD numberOfLocalPlayers, DWORD numberOfOnlinePlayers, INT saveOrCheckPointID);
|
||||
BOOL RecordPauseOrInactive(DWORD dwUserId);
|
||||
BOOL RecordUnpauseOrActive(DWORD dwUserId);
|
||||
BOOL RecordMenuShown(DWORD dwUserId, INT menuID, INT optionalMenuSubID);
|
||||
BOOL RecordAchievementUnlocked(DWORD dwUserId, INT achievementID, INT achievementGamerscore);
|
||||
BOOL RecordMediaShareUpload(DWORD dwUserId, ESen_MediaDestination mediaDestination, ESen_MediaType mediaType);
|
||||
BOOL RecordUpsellPresented(DWORD dwUserId, ESen_UpsellID upsellId, INT marketplaceOfferID);
|
||||
BOOL RecordUpsellResponded(DWORD dwUserId, ESen_UpsellID upsellId, INT marketplaceOfferID, ESen_UpsellOutcome upsellOutcome);
|
||||
BOOL RecordPlayerDiedOrFailed(DWORD dwUserId, INT lowResMapX, INT lowResMapY, INT lowResMapZ, INT mapID, INT playerWeaponID, INT enemyWeaponID, ETelemetryChallenges enemyTypeID);
|
||||
BOOL RecordEnemyKilledOrOvercome(DWORD dwUserId, INT lowResMapX, INT lowResMapY, INT lowResMapZ, INT mapID, INT playerWeaponID, INT enemyWeaponID, ETelemetryChallenges enemyTypeID);
|
||||
|
||||
BOOL RecordSkinChanged(DWORD dwUserId, DWORD dwSkinId);
|
||||
BOOL RecordBanLevel(DWORD dwUserId);
|
||||
BOOL RecordUnBanLevel(DWORD dwUserId);
|
||||
|
||||
INT GetMultiplayerInstanceID();
|
||||
INT GenerateMultiplayerInstanceId();
|
||||
void SetMultiplayerInstanceId(INT value);
|
||||
|
||||
private:
|
||||
float m_initialiseTime;
|
||||
float m_lastHeartbeat;
|
||||
bool m_bFirstFlush;
|
||||
|
||||
float m_fLevelStartTime[XUSER_MAX_COUNT];
|
||||
|
||||
INT m_multiplayerInstanceID;
|
||||
DWORD m_levelInstanceID;
|
||||
|
||||
// Helper functions to get the various common settings
|
||||
INT GetSecondsSinceInitialize();
|
||||
INT GetMode(DWORD dwUserId);
|
||||
INT GetSubMode(DWORD dwUserId);
|
||||
INT GetLevelId(DWORD dwUserId);
|
||||
INT GetSubLevelId(DWORD dwUserId);
|
||||
INT GetTitleBuildId();
|
||||
INT GetLevelInstanceID();
|
||||
INT GetSingleOrMultiplayer();
|
||||
INT GetDifficultyLevel(INT diff);
|
||||
INT GetLicense();
|
||||
INT GetDefaultGameControls();
|
||||
INT GetAudioSettings(DWORD dwUserId);
|
||||
INT GetLevelExitProgressStat1();
|
||||
INT GetLevelExitProgressStat2();
|
||||
};
|
||||
|
||||
extern CSentientManager SentientManager;
|
||||
88
Minecraft.Client/PSVita/Sentient/SentientStats.h
Normal file
88
Minecraft.Client/PSVita/Sentient/SentientStats.h
Normal file
@@ -0,0 +1,88 @@
|
||||
/************************************************************************/
|
||||
/* THIS FILE WAS AUTOMATICALLY GENERATED */
|
||||
/* PLEASE DO NOT MODIFY */
|
||||
/************************************************************************/
|
||||
// Generated from Version: 20, on (6/19/2012 9:21:23 AM)
|
||||
|
||||
#pragma once
|
||||
|
||||
/************************************************************************/
|
||||
/* STATS */
|
||||
/************************************************************************/
|
||||
|
||||
// PlayerSessionStart
|
||||
// Player signed in or joined
|
||||
BOOL SenStatPlayerSessionStart ( DWORD dwUserID, INT SecondsSinceInitialize, INT ModeID, INT OptionalSubModeID, INT LevelID, INT OptionalSubLevelID, INT TitleBuildID, INT SkeletonDistanceInInches, INT EnrollmentType, INT NumberOfSkeletonsInView );
|
||||
|
||||
// PlayerSessionExit
|
||||
// Player signed out or left
|
||||
BOOL SenStatPlayerSessionExit ( DWORD dwUserID, INT SecondsSinceInitialize, INT ModeID, INT OptionalSubModeID, INT LevelID, INT OptionalSubLevelID );
|
||||
|
||||
// HeartBeat
|
||||
// Sent every 60 seconds by title
|
||||
BOOL SenStatHeartBeat ( DWORD dwUserID, INT SecondsSinceInitialize );
|
||||
|
||||
// LevelStart
|
||||
// Level started
|
||||
BOOL SenStatLevelStart ( DWORD dwUserID, INT SecondsSinceInitialize, INT ModeID, INT OptionalSubModeID, INT LevelID, INT OptionalSubLevelID, INT LevelInstanceID, INT MultiplayerInstanceID, INT SingleOrMultiplayer, INT FriendsOrMatch, INT CompeteOrCoop, INT DifficultyLevel, INT NumberOfLocalPlayers, INT NumberOfOnlinePlayers, INT License, INT DefaultGameControls, INT AudioSettings, INT SkeletonDistanceInInches, INT NumberOfSkeletonsInView );
|
||||
|
||||
// LevelExit
|
||||
// Level exited
|
||||
BOOL SenStatLevelExit ( DWORD dwUserID, INT SecondsSinceInitialize, INT ModeID, INT OptionalSubModeID, INT LevelID, INT OptionalSubLevelID, INT LevelInstanceID, INT MultiplayerInstanceID, INT LevelExitStatus, INT LevelExitProgressStat1, INT LevelExitProgressStat2, INT LevelDurationInSeconds );
|
||||
|
||||
// LevelSaveOrCheckpoint
|
||||
// Level saved explicitly or implicitly
|
||||
BOOL SenStatLevelSaveOrCheckpoint ( DWORD dwUserID, INT SecondsSinceInitialize, INT ModeID, INT OptionalSubModeID, INT LevelID, INT OptionalSubLevelID, INT LevelInstanceID, INT MultiplayerInstanceID, INT LevelExitProgressStat1, INT LevelExitProgressStat2, INT LevelDurationInSeconds, INT SaveOrCheckPointID );
|
||||
|
||||
// LevelResume
|
||||
// Level resumed from a save or restarted at a checkpoint
|
||||
BOOL SenStatLevelResume ( DWORD dwUserID, INT SecondsSinceInitialize, INT ModeID, INT OptionalSubModeID, INT LevelID, INT OptionalSubLevelID, INT LevelInstanceID, INT MultiplayerInstanceID, INT SingleOrMultiplayer, INT FriendsOrMatch, INT CompeteOrCoop, INT DifficultyLevel, INT NumberOfLocalPlayers, INT NumberOfOnlinePlayers, INT License, INT DefaultGameControls, INT SaveOrCheckPointID, INT AudioSettings, INT SkeletonDistanceInInches, INT NumberOfSkeletonsInView );
|
||||
|
||||
// PauseOrInactive
|
||||
// Player paused game or has become inactive, level and mode are for what the player is leaving
|
||||
BOOL SenStatPauseOrInactive ( DWORD dwUserID, INT SecondsSinceInitialize, INT ModeID, INT OptionalSubModeID, INT LevelID, INT OptionalSubLevelID, INT LevelInstanceID, INT MultiplayerInstanceID );
|
||||
|
||||
// UnpauseOrActive
|
||||
// Player unpaused game or has become active, level and mode are for what the player is entering into
|
||||
BOOL SenStatUnpauseOrActive ( DWORD dwUserID, INT SecondsSinceInitialize, INT ModeID, INT OptionalSubModeID, INT LevelID, INT OptionalSubLevelID, INT LevelInstanceID, INT MultiplayerInstanceID );
|
||||
|
||||
// MenuShown
|
||||
// A menu screen or major menu area has been shown
|
||||
BOOL SenStatMenuShown ( DWORD dwUserID, INT SecondsSinceInitialize, INT ModeID, INT OptionalSubModeID, INT LevelID, INT OptionalSubLevelID, INT MenuID, INT OptionalMenuSubID, INT LevelInstanceID, INT MultiplayerInstanceID );
|
||||
|
||||
// AchievementUnlocked
|
||||
// An achievement was unlocked
|
||||
BOOL SenStatAchievementUnlocked ( DWORD dwUserID, INT SecondsSinceInitialize, INT ModeID, INT OptionalSubModeID, INT LevelID, INT OptionalSubLevelID, INT LevelInstanceID, INT MultiplayerInstanceID, INT AchievementID, INT AchievementGamerscore );
|
||||
|
||||
// MediaShareUpload
|
||||
// The user uploaded something to Kinect Share
|
||||
BOOL SenStatMediaShareUpload ( DWORD dwUserID, INT SecondsSinceInitialize, INT ModeID, INT OptionalSubModeID, INT LevelID, INT OptionalSubLevelID, INT LevelInstanceID, INT MultiplayerInstanceID, INT MediaDestination, INT MediaType );
|
||||
|
||||
// UpsellPresented
|
||||
// The user is shown an upsell to purchase something
|
||||
BOOL SenStatUpsellPresented ( DWORD dwUserID, INT SecondsSinceInitialize, INT ModeID, INT OptionalSubModeID, INT LevelID, INT OptionalSubLevelID, INT LevelInstanceID, INT MultiplayerInstanceID, INT UpsellID, INT MarketplaceOfferID );
|
||||
|
||||
// UpsellResponded
|
||||
// The user responded to the upsell
|
||||
BOOL SenStatUpsellResponded ( DWORD dwUserID, INT SecondsSinceInitialize, INT ModeID, INT OptionalSubModeID, INT LevelID, INT OptionalSubLevelID, INT LevelInstanceID, INT MultiplayerInstanceID, INT UpsellID, INT MarketplaceOfferID, INT UpsellOutcome );
|
||||
|
||||
// PlayerDiedOrFailed
|
||||
// The player died or failed a challenge - can be used for many types of failure
|
||||
BOOL SenStatPlayerDiedOrFailed ( DWORD dwUserID, INT ModeID, INT OptionalSubModeID, INT LevelID, INT OptionalSubLevelID, INT LevelInstanceID, INT MultiplayerInstanceID, INT LowResMapX, INT LowResMapY, INT LowResMapZ, INT MapID, INT PlayerWeaponID, INT EnemyWeaponID, INT EnemyTypeID, INT SecondsSinceInitialize, INT CopyOfSecondsSinceInitialize );
|
||||
|
||||
// EnemyKilledOrOvercome
|
||||
// The player killed an enemy or overcame or solved a major challenge
|
||||
BOOL SenStatEnemyKilledOrOvercome ( DWORD dwUserID, INT ModeID, INT OptionalSubModeID, INT LevelID, INT OptionalSubLevelID, INT LevelInstanceID, INT MultiplayerInstanceID, INT LowResMapX, INT LowResMapY, INT LowResMapZ, INT MapID, INT PlayerWeaponID, INT EnemyWeaponID, INT EnemyTypeID, INT SecondsSinceInitialize, INT CopyOfSecondsSinceInitialize );
|
||||
|
||||
// SkinChanged
|
||||
// The player has changed their skin, level and mode are for what the player is currently in
|
||||
BOOL SenStatSkinChanged ( DWORD dwUserID, INT SecondsSinceInitialize, INT ModeID, INT OptionalSubModeID, INT LevelID, INT OptionalSubLevelID, INT LevelInstanceID, INT MultiplayerInstanceID, INT SkinID );
|
||||
|
||||
// BanLevel
|
||||
// The player has banned a level, level and mode are for what the player is currently in and banning
|
||||
BOOL SenStatBanLevel ( DWORD dwUserID, INT SecondsSinceInitialize, INT ModeID, INT OptionalSubModeID, INT LevelID, INT OptionalSubLevelID, INT LevelInstanceID, INT MultiplayerInstanceID );
|
||||
|
||||
// UnBanLevel
|
||||
// The player has ubbanned a level, level and mode are for what the player is currently in and unbanning
|
||||
BOOL SenStatUnBanLevel ( DWORD dwUserID, INT SecondsSinceInitialize, INT ModeID, INT OptionalSubModeID, INT LevelID, INT OptionalSubLevelID, INT LevelInstanceID, INT MultiplayerInstanceID );
|
||||
|
||||
190
Minecraft.Client/PSVita/Sentient/SentientTelemetryCommon.h
Normal file
190
Minecraft.Client/PSVita/Sentient/SentientTelemetryCommon.h
Normal file
@@ -0,0 +1,190 @@
|
||||
#pragma once
|
||||
// 4J Stu - Enums as defined by the common Sentient telemetry format
|
||||
|
||||
//##################################
|
||||
// DO NOT CHANGE ANY OF THESE VALUES
|
||||
//##################################
|
||||
|
||||
|
||||
/*************************************
|
||||
AudioSettings
|
||||
*************************************
|
||||
Are players changing default audio settings?
|
||||
*/
|
||||
enum ESen_AudioSettings
|
||||
{
|
||||
eSen_AudioSettings_Undefined = 0,
|
||||
eSen_AudioSettings_Off = 1,
|
||||
eSen_AudioSettings_On_Default = 2,
|
||||
eSen_AudioSettings_On_CustomSetting = 3,
|
||||
};
|
||||
|
||||
/*************************************
|
||||
CompeteOrCoop
|
||||
*************************************
|
||||
Indicates whether players are playing a cooperative mode or a competitive mode.
|
||||
*/
|
||||
enum ESen_CompeteOrCoop
|
||||
{
|
||||
eSen_CompeteOrCoop_Undefined = 0,
|
||||
eSen_CompeteOrCoop_Cooperative = 1,
|
||||
eSen_CompeteOrCoop_Competitive = 2,
|
||||
eSen_CompeteOrCoop_Coop_and_Competitive = 3,
|
||||
};
|
||||
|
||||
/*************************************
|
||||
DefaultGameControls
|
||||
*************************************
|
||||
This is intended to capture whether players played using default control scheme or customized the control scheme.
|
||||
*/
|
||||
enum ESen_DefaultGameControls
|
||||
{
|
||||
eSen_DefaultGameControls_Undefined = 0,
|
||||
eSen_DefaultGameControls_Default_controls = 1,
|
||||
eSen_DefaultGameControls_Custom_controls = 2,
|
||||
};
|
||||
|
||||
/*************************************
|
||||
DifficultyLevel
|
||||
*************************************
|
||||
An in-game setting that differentiates the challenge imposed on the user. Normalized to a standard 5-point scale.
|
||||
*/
|
||||
enum ESen_DifficultyLevel
|
||||
{
|
||||
eSen_DifficultyLevel_Undefined = 0,
|
||||
eSen_DifficultyLevel_Easiest = 1,
|
||||
eSen_DifficultyLevel_Easier = 2,
|
||||
eSen_DifficultyLevel_Normal = 3,
|
||||
eSen_DifficultyLevel_Harder = 4,
|
||||
eSen_DifficultyLevel_Hardest = 5,
|
||||
};
|
||||
|
||||
/*************************************
|
||||
GameInputType
|
||||
*************************************
|
||||
Used to determine the different modes of input used in the game. For gamepad/keyboard/mouse usage, it is not necessary to call this for every single input.
|
||||
Also, if polling is used, calling this event occasionally may also work.
|
||||
*/
|
||||
enum ESen_GameInputType
|
||||
{
|
||||
eSen_GameInputType_Undefined = 0,
|
||||
eSen_GameInputType_Xbox_Controller = 1,
|
||||
eSen_GameInputType_Gesture = 2,
|
||||
eSen_GameInputType_Voice = 3,
|
||||
eSen_GameInputType_Voice_and_Gesture_Together = 4,
|
||||
eSen_GameInputType_Touch = 5,
|
||||
eSen_GameInputType_Keyboard = 6,
|
||||
eSen_GameInputType_Mouse = 7,
|
||||
};
|
||||
|
||||
/*************************************
|
||||
LevelExitStatus
|
||||
*************************************
|
||||
Indicates whether the player successfully completed the level. Critical for understanding the difficulty of a game with checkpoints or saves.
|
||||
*/
|
||||
enum ESen_LevelExitStatus
|
||||
{
|
||||
eSen_LevelExitStatus_Undefined = 0,
|
||||
eSen_LevelExitStatus_Exited = 1,
|
||||
eSen_LevelExitStatus_Succeeded = 2,
|
||||
eSen_LevelExitStatus_Failed = 3,
|
||||
};
|
||||
|
||||
/*************************************
|
||||
License
|
||||
*************************************
|
||||
Differentiates trial/demo from full purchased titles
|
||||
*/
|
||||
enum ESen_License
|
||||
{
|
||||
eSen_License_Undefined = 0,
|
||||
eSen_License_Trial_or_Demo = 1,
|
||||
eSen_License_Full_Purchased_Title = 2,
|
||||
};
|
||||
|
||||
/*************************************
|
||||
MediaDestination
|
||||
*************************************
|
||||
Tracks where media is uploaded to (like facebook)
|
||||
*/
|
||||
enum ESen_MediaDestination
|
||||
{
|
||||
ESen_MediaDestination_Undefined = 0,
|
||||
ESen_MediaDestination_Kinect_Share = 1,
|
||||
ESen_MediaDestination_Facebook = 2,
|
||||
ESen_MediaDestination_YouTube = 3,
|
||||
ESen_MediaDestination_Other = 4
|
||||
};
|
||||
|
||||
/*************************************
|
||||
MediaType
|
||||
*************************************
|
||||
Used to capture the type of media players are uploading to KinectShare
|
||||
*/
|
||||
enum ESen_MediaType
|
||||
{
|
||||
eSen_MediaType_Undefined = 0,
|
||||
eSen_MediaType_Picture = 1,
|
||||
eSen_MediaType_Video = 2,
|
||||
eSen_MediaType_Other_UGC = 3,
|
||||
};
|
||||
|
||||
/*************************************
|
||||
SingleOrMultiplayer
|
||||
*************************************
|
||||
Indicates whether the game is being played in single or multiplayer mode and whether multiplayer is being played locally or over live.
|
||||
*/
|
||||
enum ESen_SingleOrMultiplayer
|
||||
{
|
||||
eSen_SingleOrMultiplayer_Undefined = 0,
|
||||
eSen_SingleOrMultiplayer_Single_Player = 1,
|
||||
eSen_SingleOrMultiplayer_Multiplayer_Local = 2,
|
||||
eSen_SingleOrMultiplayer_Multiplayer_Live = 3,
|
||||
eSen_SingleOrMultiplayer_Multiplayer_Both_Local_and_Live = 4,
|
||||
};
|
||||
|
||||
/*************************************
|
||||
FriendOrMatch
|
||||
*************************************
|
||||
Are players playing with friends or were they matched?
|
||||
*/
|
||||
enum ESen_FriendOrMatch
|
||||
{
|
||||
eSen_FriendOrMatch_Undefined = 0, // (use if a single player game)
|
||||
eSen_FriendOrMatch_Playing_With_Invited_Friends = 1,
|
||||
eSen_FriendOrMatch_Playing_With_Match_Made_Opponents = 2,
|
||||
eSen_FriendOrMatch_Playing_With_Both_Friends_And_Matched_Opponents = 3,
|
||||
eSen_FriendOrMatch_Joined_Through_An_Xbox_Live_Party = 4,
|
||||
eSen_FriendOrMatch_Joined_Through_An_In_Game_Party = 5,
|
||||
};
|
||||
|
||||
/*************************************
|
||||
UpsellID
|
||||
*************************************
|
||||
Which upsell has been presented?
|
||||
*/
|
||||
enum ESen_UpsellID
|
||||
{
|
||||
eSen_UpsellID_Undefined = 0,
|
||||
eSen_UpsellID_Full_Version_Of_Game = 1,
|
||||
|
||||
// Added TU3
|
||||
eSet_UpsellID_Skin_DLC = 2,
|
||||
eSet_UpsellID_Texture_DLC = 3,
|
||||
|
||||
//2-max= Up to game
|
||||
};
|
||||
|
||||
/*************************************
|
||||
UpsellOutcome
|
||||
*************************************
|
||||
What was the outcome of the upsell?
|
||||
*/
|
||||
enum ESen_UpsellOutcome
|
||||
{
|
||||
eSen_UpsellOutcome_Undefined = 0,
|
||||
eSen_UpsellOutcome_Accepted = 1,
|
||||
eSen_UpsellOutcome_Declined = 2,
|
||||
eSen_UpsellOutcome_Went_To_Guide = 3,
|
||||
eSen_UpsellOutcome_Other = 4,
|
||||
};
|
||||
229
Minecraft.Client/PSVita/Sentient/TelemetryEnum.h
Normal file
229
Minecraft.Client/PSVita/Sentient/TelemetryEnum.h
Normal file
@@ -0,0 +1,229 @@
|
||||
#pragma once
|
||||
|
||||
/*
|
||||
AchievementGamerscore Value in gamerscore of the achievement
|
||||
AchievementID ID of achievement unlocked
|
||||
EnemyTypeID What type of enemy or challenge was the player facing? To prevent data-loss by overflowing the buffer, we recommend enemy type.
|
||||
EnemyWeaponID What weapon the enemy is holding or what counter/AI the enemy is taking to overcome a challenge
|
||||
EnrollmentType How did players enroll? (Using Kinect)
|
||||
LandscapeOrPortrait Are you currently showing in landscape or portrait mode? (Win8 only)
|
||||
LevelDurationInSeconds How long, total, has the user been playing in this level - whatever best represents this duration for attempting the level you'd like to track.
|
||||
LevelExitProgressStat1 Refers to the highest level performance metric for your game.<2E> For example, a performance metric could points earned, race time, total kills, etc. This is entirely up to you and will help us understand how well the player performed, or how far the player progressed <20>in the level before exiting.
|
||||
LevelExitProgressStat2 Refers to the highest level performance metric for your game.<2E> For example, a performance metric could points earned, race time, total kills, etc. This is entirely up to you and will help us understand how well the player performed, or how far the player progressed <20>in the level before exiting.
|
||||
LevelID This is a more granular view of mode, allowing teams to get a sense of the levels or maps players are playing and providing some insight into how players progress through a game. Teams will have to provide the game mappings that correspond to the integers. The intent is that a level is highest level at which modes can be dissected and provides an indication of player progression in a game. The intent is that level start and ends do not occur more than every 2 minutes or so, otherwise the data reported will be difficult to understand. Levels are unique only within a given modeID - so you can have a ModeID =1, LevelID =1 and a different ModeID=2, LevelID = 1 indicate two completely different levels. LevelID = 0 means undefined or unknown.
|
||||
LevelInstanceID Generated by the game every time LevelStart or LevelResume is called. This should be a unique ID (can be sequential) within a session.
|
||||
LowResMapX Player position normalized to 0-255
|
||||
LowResMapY Player position normalized to 0-255
|
||||
LowResMapZ Player position normalized to 0-255
|
||||
MapID Unique ID for the current map the player is on
|
||||
MarketplaceOfferID Unique ID for the Xbox LIVE marketplace offer that the upsell links to
|
||||
MicroGoodTypeID Describes the type of consumable or microgood
|
||||
MultiplayerInstanceID multiplayerinstanceID is a title-generated value that is the same for all players in the same multiplayer session.<2E>
|
||||
NumberOfLocalPlayers the number of players that are playing together in the game locally in the current session (on the same piece of hardware)
|
||||
NumberOfOnlinePlayers the number of players that are playing together in the game online in the current session (not on the same piece of hardware)
|
||||
NumberOfSkeletonsInView the max and min of skeletons that were in view, regardless of enrollment
|
||||
OptionalSubLevelID Used when a title has more heirarchy required. OptionalSubLevel ID = 0 means undefined or unknown.
|
||||
OptionalSubModeID Used when a title has more heirarchy required. OptionalSubMode ID = 0 means undefined or unknown.
|
||||
PlayerLevelUpProgressStat1 Refers to a performance metric for your player when they level or rank up. This is entirely up to you and will help us understand how well the player performed, or how far the player has progressed.
|
||||
PlayerLevelUpProgressStat2 Refers to a performance metric for your player when they level or rank up. This is entirely up to you and will help us understand how well the player performed, or how far the player has progressed.
|
||||
PlayerWeaponID What weapon the player is holding or what approach/tact the player is taking to overcome a challenge
|
||||
PlayspaceFeedbackWarningDirection identifies which side of the playspace players are getting too close to that results in the playspace feedback
|
||||
SaveOrCheckpointID It is important that you also generate and save a unique SaveOrCheckpointID that can be read and reported when the player resumes from this save file or checkpoint. These IDs should be completely unique across the player<65>s experience, even if they play the same level multiple times. These IDs are critical to allowing us to re-stitch a player<65>s experience in your title and provide an accurate measure of time in level.
|
||||
SecondsSinceInitialize Number of seconds elapsed since Sentient initialize.
|
||||
SecondsSinceInitializeMax Number of seconds elapsed since Sentient initialize.
|
||||
SecondsSinceInitializeMin Number of seconds elapsed since Sentient initialize.
|
||||
SkeletonDistanceInInches Identifies the distance of the skeleton from the Kinect sensor
|
||||
TitleBuildID Build version of the title, used to track changes in development as well as patches/title updates
|
||||
*/
|
||||
|
||||
/*
|
||||
ModeID
|
||||
An in-game setting that significantly differentiates the play style of the game.
|
||||
(This should be captured as an integer and correspond to mode specific to the game.)
|
||||
Teams will have to provide the game mappings that correspond to the integers.
|
||||
The intent is to allow teams to capture data on the highest level categories of gameplay in their game.
|
||||
For example, a game mode could be the name of the specific mini game (eg: golf vs darts) or a specific multiplayer mode (eg: hoard vs beast.) ModeID = 0 means undefined or unknown.
|
||||
*/
|
||||
enum ETelem_ModeId
|
||||
{
|
||||
eTelem_ModeId_Undefined = 0,
|
||||
eTelem_ModeId_Survival,
|
||||
eTelem_ModeId_Creative, // Unused in current game version
|
||||
};
|
||||
|
||||
/*
|
||||
OptionalSubModeID
|
||||
Used when a title has more heirarchy required.
|
||||
OptionalSubMode ID = 0 means undefined or unknown.
|
||||
*/
|
||||
enum ETelem_SubModeId
|
||||
{
|
||||
eTelem_SubModeId_Undefined = 0,
|
||||
eTelem_SubModeId_Normal,
|
||||
eTelem_SubModeId_Tutorial,
|
||||
};
|
||||
|
||||
/*
|
||||
LevelID
|
||||
This is a more granular view of mode, allowing teams to get a sense of the levels or maps players are playing and providing some insight into how players progress through a game.
|
||||
Teams will have to provide the game mappings that correspond to the integers.
|
||||
The intent is that a level is highest level at which modes can be dissected and provides an indication of player progression in a game.
|
||||
The intent is that level start and ends do not occur more than every 2 minutes or so, otherwise the data reported will be difficult to understand.
|
||||
Levels are unique only within a given modeID - so you can have a ModeID =1, LevelID =1 and a different ModeID=2, LevelID = 1 indicate two completely different levels.
|
||||
LevelID = 0 means undefined or unknown.
|
||||
*/
|
||||
enum ETelem_LevelId
|
||||
{
|
||||
eTelem_LevelId_Undefined = 0,
|
||||
eTelem_LevelId_PlayerGeneratedLevel = 1,
|
||||
// 4J Stu - We currently do not have any specific levels (other than the tutorial which is tracked as a mode) so this is unused at the moment
|
||||
};
|
||||
|
||||
/*
|
||||
OptionalSubLevelID
|
||||
Used when a title has more heirarchy required. OptionalSubLevel ID = 0 means undefined or unknown.
|
||||
*/
|
||||
enum ETelem_SubLevelId
|
||||
{
|
||||
eTelem_SubLevelId_Undefined = 0,
|
||||
eTelem_SubLevelId_Overworld,
|
||||
eTelem_SubLevelId_Nether,
|
||||
eTelem_SubLevelId_End,
|
||||
};
|
||||
|
||||
/*
|
||||
MenuID
|
||||
Describes the specific menu seen. MenuID = 0 means undefined or unknown.
|
||||
*/
|
||||
// 4J Stu - FOR REFERENCE ONLY - Should map 1:1 with the CConsoleMinecraftApp:EUIScene enum
|
||||
// Values that are commented out here are not currently reported
|
||||
enum ETelem_MenuId
|
||||
{
|
||||
//eTelemMenuId_PartnernetPassword = 0,
|
||||
//eTelemMenuId_Intro = 1,
|
||||
//eTelemMenuId_SaveMessage = 2,
|
||||
//eTelemMenuId_Main = 3,
|
||||
//eTelemMenuId_FullscreenProgress = 4,
|
||||
eTelemMenuId_Pause = 5,
|
||||
//eTelemMenuId_CraftingPanel_2x2 = 6,
|
||||
//eTelemMenuId_CraftingPanel_3x3 = 7,
|
||||
//eTelemMenuId_Furnace = 8,
|
||||
//eTelemMenuId_Container = 9,
|
||||
//eTelemMenuId_Largecontainer_small = 10,// for splitscreen
|
||||
//eTelemMenuId_Inventory = 11,
|
||||
//eTelemMenuId_Trap = 12,
|
||||
//eTelemMenuId_Debug = 13,
|
||||
//eTelemMenuId_DebugTips = 14,
|
||||
//eTelemMenuId_HelpAndOptions = 15,
|
||||
eTelemMenuId_HowToPlay = 16,
|
||||
//eTelemMenuId_HowToPlayMenu = 17,
|
||||
//eTelemMenuId_Controls = 18,
|
||||
//eTelemMenuId_Settings_Menu = 19,
|
||||
//eTelemMenuId_Settings_All = 20,
|
||||
//eTelemMenuId_Leaderboards = 21,
|
||||
//eTelemMenuId_Credits = 22,
|
||||
//eTelemMenuId_Death = 23,
|
||||
//eTelemMenuId_TutorialPopup = 24,
|
||||
eTelemMenuId_MultiGameCreate = 25,
|
||||
//eTelemMenuId_MultiGameJoinLoad = 26,
|
||||
eTelemMenuId_MultiGameInfo = 27,
|
||||
//eTelemMenuId_SignEntry = 28,
|
||||
//eTelemMenuId_InGameInfo = 29,
|
||||
//eTelemMenuId_ConnectingProgress = 30,
|
||||
eTelemMenuId_DLCOffers = 31,
|
||||
eTelemMenuId_SocialPost = 32,
|
||||
//eTelemMenuId_TrialExitUpsell = 33,
|
||||
eTelemMenuId_LoadSettings = 34,
|
||||
//eTelemMenuId_Chat = 35,
|
||||
//eTelemMenuId_Reinstall = 36,
|
||||
};
|
||||
|
||||
/*
|
||||
OptionalSubMenuID
|
||||
Used when a title has more heirarchy required. OptionalSubMenuID = 0 means undefined or unknown.
|
||||
*/
|
||||
enum ETelemetry_HowToPlay_SubMenuId
|
||||
{
|
||||
eTelemetryHowToPlay_Basics = 0,
|
||||
eTelemetryHowToPlay_HUD,
|
||||
eTelemetryHowToPlay_Inventory,
|
||||
eTelemetryHowToPlay_Chest,
|
||||
eTelemetryHowToPlay_LargeChest,
|
||||
eTelemetryHowToPlay_InventoryCrafting,
|
||||
eTelemetryHowToPlay_CraftTable,
|
||||
eTelemetryHowToPlay_Furnace,
|
||||
eTelemetryHowToPlay_Dispenser,
|
||||
eTelemetryHowToPlay_NetherPortal,
|
||||
};
|
||||
|
||||
/*
|
||||
EnemyTypeID What type of enemy or challenge was the player facing?
|
||||
To prevent data-loss by overflowing the buffer, we recommend enemy type.
|
||||
*/
|
||||
enum ETelemetryChallenges
|
||||
{
|
||||
eTelemetryChallenges_Unknown = 0,
|
||||
|
||||
eTelemetryTutorial_TrialStart,
|
||||
eTelemetryTutorial_Halfway,
|
||||
eTelemetryTutorial_Complete,
|
||||
|
||||
eTelemetryTutorial_Inventory,
|
||||
eTelemetryTutorial_Crafting,
|
||||
eTelemetryTutorial_Furnace,
|
||||
eTelemetryTutorial_Fishing,
|
||||
eTelemetryTutorial_Minecart,
|
||||
eTelemetryTutorial_Boat,
|
||||
eTelemetryTutorial_Bed,
|
||||
|
||||
eTelemetryTutorial_Redstone_And_Pistons,
|
||||
eTelemetryTutorial_Portal,
|
||||
eTelemetryTutorial_FoodBar,
|
||||
eTelemetryTutorial_CreativeMode,
|
||||
eTelemetryTutorial_BrewingMenu,
|
||||
|
||||
eTelemetryInGame_Ride_Minecart,
|
||||
eTelemetryInGame_Ride_Boat,
|
||||
eTelemetryInGame_Ride_Pig,
|
||||
eTelemetryInGame_UseBed,
|
||||
|
||||
eTelemetryTutorial_CreativeInventory, // Added TU5
|
||||
|
||||
eTelemetryTutorial_EnchantingMenu,
|
||||
eTelemetryTutorial_Brewing,
|
||||
eTelemetryTutorial_Enchanting,
|
||||
eTelemetryTutorial_Farming,
|
||||
|
||||
eTelemetryPlayerDeathSource_Fall,
|
||||
eTelemetryPlayerDeathSource_Lava,
|
||||
eTelemetryPlayerDeathSource_Fire,
|
||||
eTelemetryPlayerDeathSource_Water,
|
||||
eTelemetryPlayerDeathSource_Suffocate,
|
||||
eTelemetryPlayerDeathSource_OutOfWorld,
|
||||
eTelemetryPlayerDeathSource_Cactus,
|
||||
|
||||
eTelemetryPlayerDeathSource_Player_Weapon,
|
||||
eTelemetryPlayerDeathSource_Player_Arrow,
|
||||
|
||||
eTelemetryPlayerDeathSource_Explosion_Tnt,
|
||||
eTelemetryPlayerDeathSource_Explosion_Creeper,
|
||||
|
||||
eTelemetryPlayerDeathSource_Wolf,
|
||||
eTelemetryPlayerDeathSource_Zombie,
|
||||
eTelemetryPlayerDeathSource_Skeleton,
|
||||
eTelemetryPlayerDeathSource_Spider,
|
||||
eTelemetryPlayerDeathSource_Slime,
|
||||
eTelemetryPlayerDeathSource_Ghast,
|
||||
eTelemetryPlayerDeathSource_ZombiePigman,
|
||||
|
||||
eTelemetryTutorial_Breeding,
|
||||
eTelemetryTutorial_Golem,
|
||||
|
||||
eTelemetryTutorial_Anvil, // Added TU14
|
||||
eTelemetryTutorial_AnvilMenu,
|
||||
eTelemetryTutorial_Trading,
|
||||
eTelemetryTutorial_TradingMenu,
|
||||
eTelemetryTutorial_Enderchest,
|
||||
|
||||
// Sent over network as a byte
|
||||
};
|
||||
Reference in New Issue
Block a user