mirror of
https://github.com/4jcraft/4jcraft.git
synced 2026-05-13 05:37:16 +00:00
nuke the rest of Sentient
This commit is contained in:
parent
e8052fc495
commit
56dfb0badf
|
|
@ -3845,7 +3845,7 @@ int CMinecraftApp::UnlockFullInviteReturned(void* pParam, int iPad,
|
|||
// 4J-PB - need to check this user can access the store
|
||||
{
|
||||
ProfileManager.DisplayFullVersionPurchase(
|
||||
false, iPad, eSen_UpsellID_Full_Version_Of_Game);
|
||||
false, iPad, /*eSen_UpsellID_Full_Version_Of_Game*/ 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3864,7 +3864,7 @@ int CMinecraftApp::UnlockFullSaveReturned(void* pParam, int iPad,
|
|||
{
|
||||
ProfileManager.DisplayFullVersionPurchase(
|
||||
false, pMinecraft->player->GetXboxPad(),
|
||||
eSen_UpsellID_Full_Version_Of_Game);
|
||||
/*eSen_UpsellID_Full_Version_Of_Game*/ 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3883,7 +3883,7 @@ int CMinecraftApp::UnlockFullExitReturned(void* pParam, int iPad,
|
|||
{
|
||||
ProfileManager.DisplayFullVersionPurchase(
|
||||
false, pMinecraft->player->GetXboxPad(),
|
||||
eSen_UpsellID_Full_Version_Of_Game);
|
||||
/*eSen_UpsellID_Full_Version_Of_Game*/ 0);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
|
@ -3906,7 +3906,7 @@ int CMinecraftApp::TrialOverReturned(void* pParam, int iPad,
|
|||
{
|
||||
ProfileManager.DisplayFullVersionPurchase(
|
||||
false, pMinecraft->player->GetXboxPad(),
|
||||
eSen_UpsellID_Full_Version_Of_Game);
|
||||
/*eSen_UpsellID_Full_Version_Of_Game*/ 0);
|
||||
}
|
||||
} else {
|
||||
pApp->SetAction(pMinecraft->player->GetXboxPad(),
|
||||
|
|
@ -4168,32 +4168,7 @@ void CMinecraftApp::NotificationsCallback(void* pParam,
|
|||
void CMinecraftApp::UpsellReturnedCallback(void* pParam, eUpsellType type,
|
||||
eUpsellResponse result,
|
||||
int iUserData) {
|
||||
ESen_UpsellID senType;
|
||||
ESen_UpsellOutcome senResponse;
|
||||
|
||||
// Map the eUpsellResponse to the enum we use for sentient
|
||||
switch (result) {
|
||||
case eUpsellResponse_Accepted_NoPurchase:
|
||||
senResponse = eSen_UpsellOutcome_Went_To_Guide;
|
||||
break;
|
||||
case eUpsellResponse_Accepted_Purchase:
|
||||
senResponse = eSen_UpsellOutcome_Accepted;
|
||||
break;
|
||||
case eUpsellResponse_Declined:
|
||||
default:
|
||||
senResponse = eSen_UpsellOutcome_Declined;
|
||||
break;
|
||||
};
|
||||
|
||||
// Map the eUpsellType to the enum we use for sentient
|
||||
switch (type) {
|
||||
case eUpsellType_Custom:
|
||||
senType = eSen_UpsellID_Full_Version_Of_Game;
|
||||
break;
|
||||
default:
|
||||
senType = eSen_UpsellID_Undefined;
|
||||
break;
|
||||
};
|
||||
// 4jcraft: nuked
|
||||
}
|
||||
|
||||
#if defined(_DEBUG_MENUS_ENABLED)
|
||||
|
|
|
|||
|
|
@ -98,7 +98,7 @@ bool CGameNetworkManager::_RunNetworkGame(void* lpParameter) {
|
|||
// 4J-PB - if this is the trial game, start the trial timer
|
||||
if (!ProfileManager.IsFullVersion()) {
|
||||
ui.SetTrialTimerLimitSecs(
|
||||
MinecraftDynamicConfigurations::GetTrialTime());
|
||||
/*DYNAMIC_CONFIG_DEFAULT_TRIAL_TIME*/ 2400);
|
||||
app.SetTrialTimerStart();
|
||||
}
|
||||
// app.CloseXuiScenes(ProfileManager.GetPrimaryPad());
|
||||
|
|
|
|||
|
|
@ -959,7 +959,7 @@ void UIScene_MainMenu::RunUnlockOrDLC(int iPad) {
|
|||
// display the full version purchase - if the user is fast with the
|
||||
// trial version, it can still be retrieving the product list
|
||||
ProfileManager.DisplayFullVersionPurchase(
|
||||
false, iPad, eSen_UpsellID_Full_Version_Of_Game);
|
||||
false, iPad, /*eSen_UpsellID_Full_Version_Of_Game*/ 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ void UIScene_TrialExitUpsell::handleInput(int iPad, int key, bool repeat,
|
|||
// 4J-PB - need to check this user can access the store
|
||||
{
|
||||
ProfileManager.DisplayFullVersionPurchase(
|
||||
false, iPad, eSen_UpsellID_Full_Version_Of_Game);
|
||||
false, iPad, /*eSen_UpsellID_Full_Version_Of_Game*/ 0);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -550,7 +550,7 @@ int UIScene_PauseMenu::UnlockFullSaveReturned(
|
|||
{
|
||||
ProfileManager.DisplayFullVersionPurchase(
|
||||
false, pMinecraft->player->GetXboxPad(),
|
||||
eSen_UpsellID_Full_Version_Of_Game);
|
||||
/*eSen_UpsellID_Full_Version_Of_Game*/ 0);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ std::mutex UIController::ms_reloadSkinCS;
|
|||
bool UIController::ms_bReloadSkinCSInitialised = false;
|
||||
|
||||
std::uint32_t UIController::m_dwTrialTimerLimitSecs =
|
||||
DYNAMIC_CONFIG_DEFAULT_TRIAL_TIME;
|
||||
/*DYNAMIC_CONFIG_DEFAULT_TRIAL_TIME*/ 2400;
|
||||
|
||||
static void RADLINK WarningCallback(void* user_callback_data, Iggy* player,
|
||||
IggyResult code, const char* message) {
|
||||
|
|
|
|||
|
|
@ -100,10 +100,7 @@ using namespace DirectX;
|
|||
#include "strings.h"
|
||||
|
||||
#ifdef _WINDOWS64
|
||||
#include "../Windows64/Source Files/Sentient/MinecraftTelemetry.h"
|
||||
#include "../Windows64/Windows64_App.h"
|
||||
#include "../Windows64/Source Files/Sentient/DynamicConfigurations.h"
|
||||
#include "../Windows64/Source Files/Sentient/SentientTelemetryCommon.h"
|
||||
#include "Minecraft.spa.h"
|
||||
#include "../Windows64/XML/ATGXmlParser.h"
|
||||
#include "../Windows64/Source Files/Social/SocialManager.h"
|
||||
|
|
@ -114,8 +111,6 @@ using namespace DirectX;
|
|||
#else
|
||||
#include "../Linux/Linux_App.h"
|
||||
#include "../Linux/Iggy/include/iggy.h"
|
||||
#include "../Linux/Sentient/SentientTelemetryCommon.h"
|
||||
#include "../Linux/Sentient/DynamicConfigurations.h"
|
||||
#include "Minecraft.spa.h"
|
||||
#include "../Common/Source Files/Audio/SoundEngine.h"
|
||||
#include "../Linux/Linux_UIController.h"
|
||||
|
|
|
|||
|
|
@ -64,7 +64,6 @@ static void sigsegv_handler(int sig) {
|
|||
// #include "NetworkManager.h"
|
||||
#include "../net/minecraft/client/renderer/Tesselator.h"
|
||||
#include "../net/minecraft/client/Options.h"
|
||||
#include "Sentient/SentientManager.h"
|
||||
#include "../net/minecraft/client/renderer/Textures.h"
|
||||
#include "Minecraft.World/Header Files/compression.h"
|
||||
#include "Minecraft.World/net/minecraft/world/level/chunk/storage/OldChunkStorage.h"
|
||||
|
|
|
|||
|
|
@ -1,71 +0,0 @@
|
|||
#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 uint32_t, 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
|
||||
uint32_t 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 std::size_t s_currentConfigSize;
|
||||
|
||||
static std::size_t s_dataWrittenSize;
|
||||
static uint8_t* s_dataWritten;
|
||||
|
||||
public:
|
||||
static void Tick();
|
||||
|
||||
static uint32_t GetTrialTime();
|
||||
|
||||
private:
|
||||
static void UpdateAllConfigurations();
|
||||
static void UpdateNextConfiguration();
|
||||
static void UpdateConfiguration(EDynamic_Configs id);
|
||||
|
||||
static void GetSizeCompletedCallback(int32_t taskResult,
|
||||
void* userCallbackData);
|
||||
static void GetDataCompletedCallback(int32_t taskResult,
|
||||
void* userCallbackData);
|
||||
};
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
#pragma once
|
||||
#include "SentientTelemetryCommon.h"
|
||||
#include "TelemetryEnum.h"
|
||||
#include "SentientStats.h"
|
||||
|
|
@ -1,106 +0,0 @@
|
|||
#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,
|
||||
};
|
||||
|
||||
int32_t Init();
|
||||
int32_t Tick();
|
||||
|
||||
int32_t Flush();
|
||||
|
||||
bool RecordPlayerSessionStart(uint32_t dwUserId);
|
||||
bool RecordPlayerSessionExit(uint32_t dwUserId, int exitStatus);
|
||||
bool RecordHeartBeat(uint32_t dwUserId);
|
||||
bool RecordLevelStart(uint32_t dwUserId, ESen_FriendOrMatch friendsOrMatch,
|
||||
ESen_CompeteOrCoop competeOrCoop, int difficulty,
|
||||
uint32_t numberOfLocalPlayers,
|
||||
uint32_t numberOfOnlinePlayers);
|
||||
bool RecordLevelExit(uint32_t dwUserId,
|
||||
ESen_LevelExitStatus levelExitStatus);
|
||||
bool RecordLevelSaveOrCheckpoint(uint32_t dwUserId,
|
||||
int32_t saveOrCheckPointID,
|
||||
int32_t saveSizeInBytes);
|
||||
bool RecordLevelResume(uint32_t dwUserId, ESen_FriendOrMatch friendsOrMatch,
|
||||
ESen_CompeteOrCoop competeOrCoop, int difficulty,
|
||||
uint32_t numberOfLocalPlayers,
|
||||
uint32_t numberOfOnlinePlayers,
|
||||
int32_t saveOrCheckPointID);
|
||||
bool RecordPauseOrInactive(uint32_t dwUserId);
|
||||
bool RecordUnpauseOrActive(uint32_t dwUserId);
|
||||
bool RecordMenuShown(uint32_t dwUserId, int32_t menuID,
|
||||
int32_t optionalMenuSubID);
|
||||
bool RecordAchievementUnlocked(uint32_t dwUserId, int32_t achievementID,
|
||||
int32_t achievementGamerscore);
|
||||
bool RecordMediaShareUpload(uint32_t dwUserId,
|
||||
ESen_MediaDestination mediaDestination,
|
||||
ESen_MediaType mediaType);
|
||||
bool RecordUpsellPresented(uint32_t dwUserId, ESen_UpsellID upsellId,
|
||||
int32_t marketplaceOfferID);
|
||||
bool RecordUpsellResponded(uint32_t dwUserId, ESen_UpsellID upsellId,
|
||||
int32_t marketplaceOfferID,
|
||||
ESen_UpsellOutcome upsellOutcome);
|
||||
bool RecordPlayerDiedOrFailed(uint32_t dwUserId, int32_t lowResMapX,
|
||||
int32_t lowResMapY, int32_t lowResMapZ,
|
||||
int32_t mapID, int32_t playerWeaponID,
|
||||
int32_t enemyWeaponID,
|
||||
ETelemetryChallenges enemyTypeID);
|
||||
bool RecordEnemyKilledOrOvercome(uint32_t dwUserId, int32_t lowResMapX,
|
||||
int32_t lowResMapY, int32_t lowResMapZ,
|
||||
int32_t mapID, int32_t playerWeaponID,
|
||||
int32_t enemyWeaponID,
|
||||
ETelemetryChallenges enemyTypeID);
|
||||
|
||||
bool RecordSkinChanged(uint32_t dwUserId, uint32_t dwSkinId);
|
||||
bool RecordBanLevel(uint32_t dwUserId);
|
||||
bool RecordUnBanLevel(uint32_t dwUserId);
|
||||
|
||||
int32_t GetMultiplayerInstanceID();
|
||||
int32_t GenerateMultiplayerInstanceId();
|
||||
void SetMultiplayerInstanceId(int32_t value);
|
||||
|
||||
private:
|
||||
float m_initialiseTime;
|
||||
float m_lastHeartbeat;
|
||||
bool m_bFirstFlush;
|
||||
|
||||
float m_fLevelStartTime[XUSER_MAX_COUNT];
|
||||
|
||||
int32_t m_multiplayerInstanceID;
|
||||
uint32_t m_levelInstanceID;
|
||||
|
||||
// Helper functions to get the various common settings
|
||||
int32_t GetSecondsSinceInitialize();
|
||||
int32_t GetMode(uint32_t dwUserId);
|
||||
int32_t GetSubMode(uint32_t dwUserId);
|
||||
int32_t GetLevelId(uint32_t dwUserId);
|
||||
int32_t GetSubLevelId(uint32_t dwUserId);
|
||||
int32_t GetTitleBuildId();
|
||||
int32_t GetLevelInstanceID();
|
||||
int32_t GetSingleOrMultiplayer();
|
||||
int32_t GetDifficultyLevel(int32_t diff);
|
||||
int32_t GetLicense();
|
||||
int32_t GetDefaultGameControls();
|
||||
int32_t GetAudioSettings(uint32_t dwUserId);
|
||||
int32_t GetLevelExitProgressStat1();
|
||||
int32_t GetLevelExitProgressStat2();
|
||||
};
|
||||
|
||||
extern CSentientManager SentientManager;
|
||||
|
|
@ -1,184 +0,0 @@
|
|||
/************************************************************************/
|
||||
/* 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(uint32_t dwUserID,
|
||||
int32_t SecondsSinceInitialize, int32_t ModeID,
|
||||
int32_t OptionalSubModeID, int32_t LevelID,
|
||||
int32_t OptionalSubLevelID, int32_t TitleBuildID,
|
||||
int32_t SkeletonDistanceInInches,
|
||||
int32_t EnrollmentType,
|
||||
int32_t NumberOfSkeletonsInView);
|
||||
|
||||
// PlayerSessionExit
|
||||
// Player signed out or left
|
||||
bool SenStatPlayerSessionExit(uint32_t dwUserID, int32_t SecondsSinceInitialize,
|
||||
int32_t ModeID, int32_t OptionalSubModeID,
|
||||
int32_t LevelID, int32_t OptionalSubLevelID);
|
||||
|
||||
// HeartBeat
|
||||
// Sent every 60 seconds by title
|
||||
bool SenStatHeartBeat(uint32_t dwUserID, int32_t SecondsSinceInitialize);
|
||||
|
||||
// LevelStart
|
||||
// Level started
|
||||
bool SenStatLevelStart(uint32_t dwUserID, int32_t SecondsSinceInitialize,
|
||||
int32_t ModeID, int32_t OptionalSubModeID,
|
||||
int32_t LevelID, int32_t OptionalSubLevelID,
|
||||
int32_t LevelInstanceID, int32_t MultiplayerInstanceID,
|
||||
int32_t SingleOrMultiplayer, int32_t FriendsOrMatch,
|
||||
int32_t CompeteOrCoop, int32_t DifficultyLevel,
|
||||
int32_t NumberOfLocalPlayers,
|
||||
int32_t NumberOfOnlinePlayers, int32_t License,
|
||||
int32_t DefaultGameControls, int32_t AudioSettings,
|
||||
int32_t SkeletonDistanceInInches,
|
||||
int32_t NumberOfSkeletonsInView);
|
||||
|
||||
// LevelExit
|
||||
// Level exited
|
||||
bool SenStatLevelExit(uint32_t dwUserID, int32_t SecondsSinceInitialize,
|
||||
int32_t ModeID, int32_t OptionalSubModeID,
|
||||
int32_t LevelID, int32_t OptionalSubLevelID,
|
||||
int32_t LevelInstanceID, int32_t MultiplayerInstanceID,
|
||||
int32_t LevelExitStatus, int32_t LevelExitProgressStat1,
|
||||
int32_t LevelExitProgressStat2,
|
||||
int32_t LevelDurationInSeconds);
|
||||
|
||||
// LevelSaveOrCheckpoint
|
||||
// Level saved explicitly or implicitly
|
||||
bool SenStatLevelSaveOrCheckpoint(
|
||||
uint32_t dwUserID, int32_t SecondsSinceInitialize, int32_t ModeID,
|
||||
int32_t OptionalSubModeID, int32_t LevelID, int32_t OptionalSubLevelID,
|
||||
int32_t LevelInstanceID, int32_t MultiplayerInstanceID,
|
||||
int32_t LevelExitProgressStat1, int32_t LevelExitProgressStat2,
|
||||
int32_t LevelDurationInSeconds, int32_t SaveOrCheckPointID);
|
||||
|
||||
// LevelResume
|
||||
// Level resumed from a save or restarted at a checkpoint
|
||||
bool SenStatLevelResume(uint32_t dwUserID, int32_t SecondsSinceInitialize,
|
||||
int32_t ModeID, int32_t OptionalSubModeID,
|
||||
int32_t LevelID, int32_t OptionalSubLevelID,
|
||||
int32_t LevelInstanceID, int32_t MultiplayerInstanceID,
|
||||
int32_t SingleOrMultiplayer, int32_t FriendsOrMatch,
|
||||
int32_t CompeteOrCoop, int32_t DifficultyLevel,
|
||||
int32_t NumberOfLocalPlayers,
|
||||
int32_t NumberOfOnlinePlayers, int32_t License,
|
||||
int32_t DefaultGameControls, int32_t SaveOrCheckPointID,
|
||||
int32_t AudioSettings, int32_t SkeletonDistanceInInches,
|
||||
int32_t NumberOfSkeletonsInView);
|
||||
|
||||
// PauseOrInactive
|
||||
// Player paused game or has become inactive, level and mode are for what the
|
||||
// player is leaving
|
||||
bool SenStatPauseOrInactive(uint32_t dwUserID, int32_t SecondsSinceInitialize,
|
||||
int32_t ModeID, int32_t OptionalSubModeID,
|
||||
int32_t LevelID, int32_t OptionalSubLevelID,
|
||||
int32_t LevelInstanceID,
|
||||
int32_t MultiplayerInstanceID);
|
||||
|
||||
// UnpauseOrActive
|
||||
// Player unpaused game or has become active, level and mode are for what the
|
||||
// player is entering into
|
||||
bool SenStatUnpauseOrActive(uint32_t dwUserID, int32_t SecondsSinceInitialize,
|
||||
int32_t ModeID, int32_t OptionalSubModeID,
|
||||
int32_t LevelID, int32_t OptionalSubLevelID,
|
||||
int32_t LevelInstanceID,
|
||||
int32_t MultiplayerInstanceID);
|
||||
|
||||
// MenuShown
|
||||
// A menu screen or major menu area has been shown
|
||||
bool SenStatMenuShown(uint32_t dwUserID, int32_t SecondsSinceInitialize,
|
||||
int32_t ModeID, int32_t OptionalSubModeID,
|
||||
int32_t LevelID, int32_t OptionalSubLevelID,
|
||||
int32_t MenuID, int32_t OptionalMenuSubID,
|
||||
int32_t LevelInstanceID, int32_t MultiplayerInstanceID);
|
||||
|
||||
// AchievementUnlocked
|
||||
// An achievement was unlocked
|
||||
bool SenStatAchievementUnlocked(
|
||||
uint32_t dwUserID, int32_t SecondsSinceInitialize, int32_t ModeID,
|
||||
int32_t OptionalSubModeID, int32_t LevelID, int32_t OptionalSubLevelID,
|
||||
int32_t LevelInstanceID, int32_t MultiplayerInstanceID,
|
||||
int32_t AchievementID, int32_t AchievementGamerscore);
|
||||
|
||||
// MediaShareUpload
|
||||
// The user uploaded something to Kinect Share
|
||||
bool SenStatMediaShareUpload(uint32_t dwUserID, int32_t SecondsSinceInitialize,
|
||||
int32_t ModeID, int32_t OptionalSubModeID,
|
||||
int32_t LevelID, int32_t OptionalSubLevelID,
|
||||
int32_t LevelInstanceID,
|
||||
int32_t MultiplayerInstanceID,
|
||||
int32_t MediaDestination, int32_t MediaType);
|
||||
|
||||
// UpsellPresented
|
||||
// The user is shown an upsell to purchase something
|
||||
bool SenStatUpsellPresented(uint32_t dwUserID, int32_t SecondsSinceInitialize,
|
||||
int32_t ModeID, int32_t OptionalSubModeID,
|
||||
int32_t LevelID, int32_t OptionalSubLevelID,
|
||||
int32_t LevelInstanceID,
|
||||
int32_t MultiplayerInstanceID, int32_t UpsellID,
|
||||
int32_t MarketplaceOfferID);
|
||||
|
||||
// UpsellResponded
|
||||
// The user responded to the upsell
|
||||
bool SenStatUpsellResponded(uint32_t dwUserID, int32_t SecondsSinceInitialize,
|
||||
int32_t ModeID, int32_t OptionalSubModeID,
|
||||
int32_t LevelID, int32_t OptionalSubLevelID,
|
||||
int32_t LevelInstanceID,
|
||||
int32_t MultiplayerInstanceID, int32_t UpsellID,
|
||||
int32_t MarketplaceOfferID, int32_t UpsellOutcome);
|
||||
|
||||
// PlayerDiedOrFailed
|
||||
// The player died or failed a challenge - can be used for many types of failure
|
||||
bool SenStatPlayerDiedOrFailed(
|
||||
uint32_t dwUserID, int32_t ModeID, int32_t OptionalSubModeID,
|
||||
int32_t LevelID, int32_t OptionalSubLevelID, int32_t LevelInstanceID,
|
||||
int32_t MultiplayerInstanceID, int32_t LowResMapX, int32_t LowResMapY,
|
||||
int32_t LowResMapZ, int32_t MapID, int32_t PlayerWeaponID,
|
||||
int32_t EnemyWeaponID, int32_t EnemyTypeID, int32_t SecondsSinceInitialize,
|
||||
int32_t CopyOfSecondsSinceInitialize);
|
||||
|
||||
// EnemyKilledOrOvercome
|
||||
// The player killed an enemy or overcame or solved a major challenge
|
||||
bool SenStatEnemyKilledOrOvercome(
|
||||
uint32_t dwUserID, int32_t ModeID, int32_t OptionalSubModeID,
|
||||
int32_t LevelID, int32_t OptionalSubLevelID, int32_t LevelInstanceID,
|
||||
int32_t MultiplayerInstanceID, int32_t LowResMapX, int32_t LowResMapY,
|
||||
int32_t LowResMapZ, int32_t MapID, int32_t PlayerWeaponID,
|
||||
int32_t EnemyWeaponID, int32_t EnemyTypeID, int32_t SecondsSinceInitialize,
|
||||
int32_t CopyOfSecondsSinceInitialize);
|
||||
|
||||
// SkinChanged
|
||||
// The player has changed their skin, level and mode are for what the player is
|
||||
// currently in
|
||||
bool SenStatSkinChanged(uint32_t dwUserID, int32_t SecondsSinceInitialize,
|
||||
int32_t ModeID, int32_t OptionalSubModeID,
|
||||
int32_t LevelID, int32_t OptionalSubLevelID,
|
||||
int32_t LevelInstanceID, int32_t MultiplayerInstanceID,
|
||||
int32_t SkinID);
|
||||
|
||||
// BanLevel
|
||||
// The player has banned a level, level and mode are for what the player is
|
||||
// currently in and banning
|
||||
bool SenStatBanLevel(uint32_t dwUserID, int32_t SecondsSinceInitialize,
|
||||
int32_t ModeID, int32_t OptionalSubModeID, int32_t LevelID,
|
||||
int32_t OptionalSubLevelID, int32_t LevelInstanceID,
|
||||
int32_t MultiplayerInstanceID);
|
||||
|
||||
// UnBanLevel
|
||||
// The player has ubbanned a level, level and mode are for what the player is
|
||||
// currently in and unbanning
|
||||
bool SenStatUnBanLevel(uint32_t dwUserID, int32_t SecondsSinceInitialize,
|
||||
int32_t ModeID, int32_t OptionalSubModeID,
|
||||
int32_t LevelID, int32_t OptionalSubLevelID,
|
||||
int32_t LevelInstanceID, int32_t MultiplayerInstanceID);
|
||||
|
|
@ -1,181 +0,0 @@
|
|||
#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,
|
||||
};
|
||||
|
|
@ -1,275 +0,0 @@
|
|||
#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.<EFBFBD> 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 <EFBFBD>in the level before exiting.
|
||||
LevelExitProgressStat2 Refers to the highest level performance metric for your
|
||||
game.<EFBFBD> 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 <EFBFBD>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.<EFBFBD> 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<EFBFBD>s experience, even if they play the same level multiple times. These IDs
|
||||
are critical to allowing us to re-stitch a player<EFBFBD>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,
|
||||
|
||||
eTelemetryTutorial_Horse, // Java 1.6.4
|
||||
eTelemetryTutorial_HorseMenu,
|
||||
eTelemetryTutorial_Fireworks,
|
||||
eTelemetryTutorial_FireworksMenu,
|
||||
eTelemetryTutorial_Beacon,
|
||||
eTelemetryTutorial_BeaconMenu,
|
||||
eTelemetryTutorial_Hopper,
|
||||
eTelemetryTutorial_HopperMenu,
|
||||
|
||||
// Sent over network as a byte
|
||||
};
|
||||
|
|
@ -2,7 +2,6 @@
|
|||
// #include <compressapi.h>
|
||||
|
||||
#if defined(_WINDOWS64)
|
||||
#include "../Windows64/Source Files/Sentient/SentientManager.h"
|
||||
#include "../net/minecraft/stats/StatsCounter.h"
|
||||
#include "../Windows64/Source Files/Social/SocialManager.h"
|
||||
#include "../Windows64/Source Files/Sentient/DynamicConfigurations.h"
|
||||
|
|
@ -11,7 +10,6 @@
|
|||
// via #pragma once. Pull in SentientManager for CSentientManager class
|
||||
// declaration and StatsCounter; CSocialManager is provided as inline stubs via
|
||||
// Linux/Social/SocialManager.h.
|
||||
#include "../Linux/Sentient/SentientManager.h"
|
||||
#include "../net/minecraft/stats/StatsCounter.h"
|
||||
#else
|
||||
#include "../net/minecraft/stats/StatsCounter.h"
|
||||
|
|
@ -21,7 +19,7 @@
|
|||
// C4JStorage StorageManager;
|
||||
C_4JProfile ProfileManager;
|
||||
#endif
|
||||
CSentientManager SentientManager;
|
||||
|
||||
#if !defined(__linux__)
|
||||
// On Linux this global shadows the project's StringTable class name in unity
|
||||
// builds
|
||||
|
|
@ -197,10 +195,6 @@ int32_t IQNet::JoinGameFromInviteInfo(uint32_t dwUserIndex, uint32_t dwUserMask,
|
|||
void IQNet::HostGame() { _bQNetStubGameRunning = true; }
|
||||
void IQNet::EndGame() { _bQNetStubGameRunning = false; }
|
||||
|
||||
uint32_t MinecraftDynamicConfigurations::GetTrialTime() {
|
||||
return DYNAMIC_CONFIG_DEFAULT_TRIAL_TIME;
|
||||
}
|
||||
|
||||
void XSetThreadProcessor(void* a, int b) {}
|
||||
// #if !(0) && !(0)
|
||||
// bool XCloseHandle(void* a) { return CloseHandle(a); }
|
||||
|
|
@ -706,92 +700,6 @@ C4JStorage::ETMSStatus C4JStorage::TMSPP_ReadFile(
|
|||
|
||||
#endif
|
||||
|
||||
/////////////////////////////////////////////////////// Sentient manager
|
||||
|
||||
int32_t CSentientManager::Init() { return S_OK; }
|
||||
int32_t CSentientManager::Tick() { return S_OK; }
|
||||
int32_t CSentientManager::Flush() { return S_OK; }
|
||||
bool CSentientManager::RecordPlayerSessionStart(uint32_t dwUserId) {
|
||||
return true;
|
||||
}
|
||||
bool CSentientManager::RecordPlayerSessionExit(uint32_t dwUserId,
|
||||
int exitStatus) {
|
||||
return true;
|
||||
}
|
||||
bool CSentientManager::RecordHeartBeat(uint32_t dwUserId) { return true; }
|
||||
bool CSentientManager::RecordLevelStart(uint32_t dwUserId,
|
||||
ESen_FriendOrMatch friendsOrMatch,
|
||||
ESen_CompeteOrCoop competeOrCoop,
|
||||
int difficulty,
|
||||
uint32_t numberOfLocalPlayers,
|
||||
uint32_t numberOfOnlinePlayers) {
|
||||
return true;
|
||||
}
|
||||
bool CSentientManager::RecordLevelExit(uint32_t dwUserId,
|
||||
ESen_LevelExitStatus levelExitStatus) {
|
||||
return true;
|
||||
}
|
||||
bool CSentientManager::RecordLevelSaveOrCheckpoint(uint32_t dwUserId,
|
||||
int32_t saveOrCheckPointID,
|
||||
int32_t saveSizeInBytes) {
|
||||
return true;
|
||||
}
|
||||
bool CSentientManager::RecordLevelResume(uint32_t dwUserId,
|
||||
ESen_FriendOrMatch friendsOrMatch,
|
||||
ESen_CompeteOrCoop competeOrCoop,
|
||||
int difficulty,
|
||||
uint32_t numberOfLocalPlayers,
|
||||
uint32_t numberOfOnlinePlayers,
|
||||
int32_t saveOrCheckPointID) {
|
||||
return true;
|
||||
}
|
||||
bool CSentientManager::RecordPauseOrInactive(uint32_t dwUserId) { return true; }
|
||||
bool CSentientManager::RecordUnpauseOrActive(uint32_t dwUserId) { return true; }
|
||||
bool CSentientManager::RecordMenuShown(uint32_t dwUserId, int32_t menuID,
|
||||
int32_t optionalMenuSubID) {
|
||||
return true;
|
||||
}
|
||||
bool CSentientManager::RecordAchievementUnlocked(
|
||||
uint32_t dwUserId, int32_t achievementID, int32_t achievementGamerscore) {
|
||||
return true;
|
||||
}
|
||||
bool CSentientManager::RecordMediaShareUpload(
|
||||
uint32_t dwUserId, ESen_MediaDestination mediaDestination,
|
||||
ESen_MediaType mediaType) {
|
||||
return true;
|
||||
}
|
||||
bool CSentientManager::RecordUpsellPresented(uint32_t dwUserId,
|
||||
ESen_UpsellID upsellId,
|
||||
int32_t marketplaceOfferID) {
|
||||
return true;
|
||||
}
|
||||
bool CSentientManager::RecordUpsellResponded(uint32_t dwUserId,
|
||||
ESen_UpsellID upsellId,
|
||||
int32_t marketplaceOfferID,
|
||||
ESen_UpsellOutcome upsellOutcome) {
|
||||
return true;
|
||||
}
|
||||
bool CSentientManager::RecordPlayerDiedOrFailed(
|
||||
uint32_t dwUserId, int32_t lowResMapX, int32_t lowResMapY,
|
||||
int32_t lowResMapZ, int32_t mapID, int32_t playerWeaponID,
|
||||
int32_t enemyWeaponID, ETelemetryChallenges enemyTypeID) {
|
||||
return true;
|
||||
}
|
||||
bool CSentientManager::RecordEnemyKilledOrOvercome(
|
||||
uint32_t dwUserId, int32_t lowResMapX, int32_t lowResMapY,
|
||||
int32_t lowResMapZ, int32_t mapID, int32_t playerWeaponID,
|
||||
int32_t enemyWeaponID, ETelemetryChallenges enemyTypeID) {
|
||||
return true;
|
||||
}
|
||||
bool CSentientManager::RecordSkinChanged(uint32_t dwUserId, uint32_t dwSkinId) {
|
||||
return true;
|
||||
}
|
||||
bool CSentientManager::RecordBanLevel(uint32_t dwUserId) { return true; }
|
||||
bool CSentientManager::RecordUnBanLevel(uint32_t dwUserId) { return true; }
|
||||
int32_t CSentientManager::GetMultiplayerInstanceID() { return 0; }
|
||||
int32_t CSentientManager::GenerateMultiplayerInstanceId() { return 0; }
|
||||
void CSentientManager::SetMultiplayerInstanceId(int32_t value) {}
|
||||
|
||||
//////////////////////////////////////////////////////// Stats counter
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -1,141 +0,0 @@
|
|||
#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 uint32_t, 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
|
||||
uint32_t 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 std::size_t s_currentConfigSize;
|
||||
|
||||
static std::size_t s_dataWrittenSize;
|
||||
static uint8_t* s_dataWritten;
|
||||
|
||||
public:
|
||||
static void Tick();
|
||||
|
||||
static uint32_t GetTrialTime();
|
||||
|
||||
private:
|
||||
static void UpdateAllConfigurations();
|
||||
static void UpdateNextConfiguration();
|
||||
static void UpdateConfiguration(EDynamic_Configs id);
|
||||
|
||||
static void GetSizeCompletedCallback(int32_t taskResult,
|
||||
void* userCallbackData);
|
||||
static void GetDataCompletedCallback(int32_t taskResult,
|
||||
void* userCallbackData);
|
||||
};
|
||||
#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 uint32_t, 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
|
||||
uint32_t 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 std::size_t s_currentConfigSize;
|
||||
|
||||
static std::size_t s_dataWrittenSize;
|
||||
static uint8_t* s_dataWritten;
|
||||
|
||||
public:
|
||||
static void Tick();
|
||||
|
||||
static uint32_t GetTrialTime();
|
||||
|
||||
private:
|
||||
static void UpdateAllConfigurations();
|
||||
static void UpdateNextConfiguration();
|
||||
static void UpdateConfiguration(EDynamic_Configs id);
|
||||
|
||||
static void GetSizeCompletedCallback(int32_t taskResult,
|
||||
void* userCallbackData);
|
||||
static void GetDataCompletedCallback(int32_t taskResult,
|
||||
void* userCallbackData);
|
||||
};
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
#pragma once
|
||||
#include "SentientTelemetryCommon.h"
|
||||
#include "TelemetryEnum.h"
|
||||
#include "SentientStats.h"
|
||||
|
|
@ -1,106 +0,0 @@
|
|||
#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,
|
||||
};
|
||||
|
||||
int32_t Init();
|
||||
int32_t Tick();
|
||||
|
||||
int32_t Flush();
|
||||
|
||||
bool RecordPlayerSessionStart(uint32_t dwUserId);
|
||||
bool RecordPlayerSessionExit(uint32_t dwUserId, int exitStatus);
|
||||
bool RecordHeartBeat(uint32_t dwUserId);
|
||||
bool RecordLevelStart(uint32_t dwUserId, ESen_FriendOrMatch friendsOrMatch,
|
||||
ESen_CompeteOrCoop competeOrCoop, int difficulty,
|
||||
uint32_t numberOfLocalPlayers,
|
||||
uint32_t numberOfOnlinePlayers);
|
||||
bool RecordLevelExit(uint32_t dwUserId,
|
||||
ESen_LevelExitStatus levelExitStatus);
|
||||
bool RecordLevelSaveOrCheckpoint(uint32_t dwUserId,
|
||||
int32_t saveOrCheckPointID,
|
||||
int32_t saveSizeInBytes);
|
||||
bool RecordLevelResume(uint32_t dwUserId, ESen_FriendOrMatch friendsOrMatch,
|
||||
ESen_CompeteOrCoop competeOrCoop, int difficulty,
|
||||
uint32_t numberOfLocalPlayers,
|
||||
uint32_t numberOfOnlinePlayers,
|
||||
int32_t saveOrCheckPointID);
|
||||
bool RecordPauseOrInactive(uint32_t dwUserId);
|
||||
bool RecordUnpauseOrActive(uint32_t dwUserId);
|
||||
bool RecordMenuShown(uint32_t dwUserId, int32_t menuID,
|
||||
int32_t optionalMenuSubID);
|
||||
bool RecordAchievementUnlocked(uint32_t dwUserId, int32_t achievementID,
|
||||
int32_t achievementGamerscore);
|
||||
bool RecordMediaShareUpload(uint32_t dwUserId,
|
||||
ESen_MediaDestination mediaDestination,
|
||||
ESen_MediaType mediaType);
|
||||
bool RecordUpsellPresented(uint32_t dwUserId, ESen_UpsellID upsellId,
|
||||
int32_t marketplaceOfferID);
|
||||
bool RecordUpsellResponded(uint32_t dwUserId, ESen_UpsellID upsellId,
|
||||
int32_t marketplaceOfferID,
|
||||
ESen_UpsellOutcome upsellOutcome);
|
||||
bool RecordPlayerDiedOrFailed(uint32_t dwUserId, int32_t lowResMapX,
|
||||
int32_t lowResMapY, int32_t lowResMapZ,
|
||||
int32_t mapID, int32_t playerWeaponID,
|
||||
int32_t enemyWeaponID,
|
||||
ETelemetryChallenges enemyTypeID);
|
||||
bool RecordEnemyKilledOrOvercome(uint32_t dwUserId, int32_t lowResMapX,
|
||||
int32_t lowResMapY, int32_t lowResMapZ,
|
||||
int32_t mapID, int32_t playerWeaponID,
|
||||
int32_t enemyWeaponID,
|
||||
ETelemetryChallenges enemyTypeID);
|
||||
|
||||
bool RecordSkinChanged(uint32_t dwUserId, uint32_t dwSkinId);
|
||||
bool RecordBanLevel(uint32_t dwUserId);
|
||||
bool RecordUnBanLevel(uint32_t dwUserId);
|
||||
|
||||
int32_t GetMultiplayerInstanceID();
|
||||
int32_t GenerateMultiplayerInstanceId();
|
||||
void SetMultiplayerInstanceId(int32_t value);
|
||||
|
||||
private:
|
||||
float m_initialiseTime;
|
||||
float m_lastHeartbeat;
|
||||
bool m_bFirstFlush;
|
||||
|
||||
float m_fLevelStartTime[XUSER_MAX_COUNT];
|
||||
|
||||
int32_t m_multiplayerInstanceID;
|
||||
uint32_t m_levelInstanceID;
|
||||
|
||||
// Helper functions to get the various common settings
|
||||
int32_t GetSecondsSinceInitialize();
|
||||
int32_t GetMode(uint32_t dwUserId);
|
||||
int32_t GetSubMode(uint32_t dwUserId);
|
||||
int32_t GetLevelId(uint32_t dwUserId);
|
||||
int32_t GetSubLevelId(uint32_t dwUserId);
|
||||
int32_t GetTitleBuildId();
|
||||
int32_t GetLevelInstanceID();
|
||||
int32_t GetSingleOrMultiplayer();
|
||||
int32_t GetDifficultyLevel(int32_t diff);
|
||||
int32_t GetLicense();
|
||||
int32_t GetDefaultGameControls();
|
||||
int32_t GetAudioSettings(uint32_t dwUserId);
|
||||
int32_t GetLevelExitProgressStat1();
|
||||
int32_t GetLevelExitProgressStat2();
|
||||
};
|
||||
|
||||
extern CSentientManager SentientManager;
|
||||
|
|
@ -1,184 +0,0 @@
|
|||
/************************************************************************/
|
||||
/* 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(uint32_t dwUserID,
|
||||
int32_t SecondsSinceInitialize, int32_t ModeID,
|
||||
int32_t OptionalSubModeID, int32_t LevelID,
|
||||
int32_t OptionalSubLevelID, int32_t TitleBuildID,
|
||||
int32_t SkeletonDistanceInInches,
|
||||
int32_t EnrollmentType,
|
||||
int32_t NumberOfSkeletonsInView);
|
||||
|
||||
// PlayerSessionExit
|
||||
// Player signed out or left
|
||||
bool SenStatPlayerSessionExit(uint32_t dwUserID, int32_t SecondsSinceInitialize,
|
||||
int32_t ModeID, int32_t OptionalSubModeID,
|
||||
int32_t LevelID, int32_t OptionalSubLevelID);
|
||||
|
||||
// HeartBeat
|
||||
// Sent every 60 seconds by title
|
||||
bool SenStatHeartBeat(uint32_t dwUserID, int32_t SecondsSinceInitialize);
|
||||
|
||||
// LevelStart
|
||||
// Level started
|
||||
bool SenStatLevelStart(uint32_t dwUserID, int32_t SecondsSinceInitialize,
|
||||
int32_t ModeID, int32_t OptionalSubModeID,
|
||||
int32_t LevelID, int32_t OptionalSubLevelID,
|
||||
int32_t LevelInstanceID, int32_t MultiplayerInstanceID,
|
||||
int32_t SingleOrMultiplayer, int32_t FriendsOrMatch,
|
||||
int32_t CompeteOrCoop, int32_t DifficultyLevel,
|
||||
int32_t NumberOfLocalPlayers,
|
||||
int32_t NumberOfOnlinePlayers, int32_t License,
|
||||
int32_t DefaultGameControls, int32_t AudioSettings,
|
||||
int32_t SkeletonDistanceInInches,
|
||||
int32_t NumberOfSkeletonsInView);
|
||||
|
||||
// LevelExit
|
||||
// Level exited
|
||||
bool SenStatLevelExit(uint32_t dwUserID, int32_t SecondsSinceInitialize,
|
||||
int32_t ModeID, int32_t OptionalSubModeID,
|
||||
int32_t LevelID, int32_t OptionalSubLevelID,
|
||||
int32_t LevelInstanceID, int32_t MultiplayerInstanceID,
|
||||
int32_t LevelExitStatus, int32_t LevelExitProgressStat1,
|
||||
int32_t LevelExitProgressStat2,
|
||||
int32_t LevelDurationInSeconds);
|
||||
|
||||
// LevelSaveOrCheckpoint
|
||||
// Level saved explicitly or implicitly
|
||||
bool SenStatLevelSaveOrCheckpoint(
|
||||
uint32_t dwUserID, int32_t SecondsSinceInitialize, int32_t ModeID,
|
||||
int32_t OptionalSubModeID, int32_t LevelID, int32_t OptionalSubLevelID,
|
||||
int32_t LevelInstanceID, int32_t MultiplayerInstanceID,
|
||||
int32_t LevelExitProgressStat1, int32_t LevelExitProgressStat2,
|
||||
int32_t LevelDurationInSeconds, int32_t SaveOrCheckPointID);
|
||||
|
||||
// LevelResume
|
||||
// Level resumed from a save or restarted at a checkpoint
|
||||
bool SenStatLevelResume(uint32_t dwUserID, int32_t SecondsSinceInitialize,
|
||||
int32_t ModeID, int32_t OptionalSubModeID,
|
||||
int32_t LevelID, int32_t OptionalSubLevelID,
|
||||
int32_t LevelInstanceID, int32_t MultiplayerInstanceID,
|
||||
int32_t SingleOrMultiplayer, int32_t FriendsOrMatch,
|
||||
int32_t CompeteOrCoop, int32_t DifficultyLevel,
|
||||
int32_t NumberOfLocalPlayers,
|
||||
int32_t NumberOfOnlinePlayers, int32_t License,
|
||||
int32_t DefaultGameControls, int32_t SaveOrCheckPointID,
|
||||
int32_t AudioSettings, int32_t SkeletonDistanceInInches,
|
||||
int32_t NumberOfSkeletonsInView);
|
||||
|
||||
// PauseOrInactive
|
||||
// Player paused game or has become inactive, level and mode are for what the
|
||||
// player is leaving
|
||||
bool SenStatPauseOrInactive(uint32_t dwUserID, int32_t SecondsSinceInitialize,
|
||||
int32_t ModeID, int32_t OptionalSubModeID,
|
||||
int32_t LevelID, int32_t OptionalSubLevelID,
|
||||
int32_t LevelInstanceID,
|
||||
int32_t MultiplayerInstanceID);
|
||||
|
||||
// UnpauseOrActive
|
||||
// Player unpaused game or has become active, level and mode are for what the
|
||||
// player is entering into
|
||||
bool SenStatUnpauseOrActive(uint32_t dwUserID, int32_t SecondsSinceInitialize,
|
||||
int32_t ModeID, int32_t OptionalSubModeID,
|
||||
int32_t LevelID, int32_t OptionalSubLevelID,
|
||||
int32_t LevelInstanceID,
|
||||
int32_t MultiplayerInstanceID);
|
||||
|
||||
// MenuShown
|
||||
// A menu screen or major menu area has been shown
|
||||
bool SenStatMenuShown(uint32_t dwUserID, int32_t SecondsSinceInitialize,
|
||||
int32_t ModeID, int32_t OptionalSubModeID,
|
||||
int32_t LevelID, int32_t OptionalSubLevelID,
|
||||
int32_t MenuID, int32_t OptionalMenuSubID,
|
||||
int32_t LevelInstanceID, int32_t MultiplayerInstanceID);
|
||||
|
||||
// AchievementUnlocked
|
||||
// An achievement was unlocked
|
||||
bool SenStatAchievementUnlocked(
|
||||
uint32_t dwUserID, int32_t SecondsSinceInitialize, int32_t ModeID,
|
||||
int32_t OptionalSubModeID, int32_t LevelID, int32_t OptionalSubLevelID,
|
||||
int32_t LevelInstanceID, int32_t MultiplayerInstanceID,
|
||||
int32_t AchievementID, int32_t AchievementGamerscore);
|
||||
|
||||
// MediaShareUpload
|
||||
// The user uploaded something to Kinect Share
|
||||
bool SenStatMediaShareUpload(uint32_t dwUserID, int32_t SecondsSinceInitialize,
|
||||
int32_t ModeID, int32_t OptionalSubModeID,
|
||||
int32_t LevelID, int32_t OptionalSubLevelID,
|
||||
int32_t LevelInstanceID,
|
||||
int32_t MultiplayerInstanceID,
|
||||
int32_t MediaDestination, int32_t MediaType);
|
||||
|
||||
// UpsellPresented
|
||||
// The user is shown an upsell to purchase something
|
||||
bool SenStatUpsellPresented(uint32_t dwUserID, int32_t SecondsSinceInitialize,
|
||||
int32_t ModeID, int32_t OptionalSubModeID,
|
||||
int32_t LevelID, int32_t OptionalSubLevelID,
|
||||
int32_t LevelInstanceID,
|
||||
int32_t MultiplayerInstanceID, int32_t UpsellID,
|
||||
int32_t MarketplaceOfferID);
|
||||
|
||||
// UpsellResponded
|
||||
// The user responded to the upsell
|
||||
bool SenStatUpsellResponded(uint32_t dwUserID, int32_t SecondsSinceInitialize,
|
||||
int32_t ModeID, int32_t OptionalSubModeID,
|
||||
int32_t LevelID, int32_t OptionalSubLevelID,
|
||||
int32_t LevelInstanceID,
|
||||
int32_t MultiplayerInstanceID, int32_t UpsellID,
|
||||
int32_t MarketplaceOfferID, int32_t UpsellOutcome);
|
||||
|
||||
// PlayerDiedOrFailed
|
||||
// The player died or failed a challenge - can be used for many types of failure
|
||||
bool SenStatPlayerDiedOrFailed(
|
||||
uint32_t dwUserID, int32_t ModeID, int32_t OptionalSubModeID,
|
||||
int32_t LevelID, int32_t OptionalSubLevelID, int32_t LevelInstanceID,
|
||||
int32_t MultiplayerInstanceID, int32_t LowResMapX, int32_t LowResMapY,
|
||||
int32_t LowResMapZ, int32_t MapID, int32_t PlayerWeaponID,
|
||||
int32_t EnemyWeaponID, int32_t EnemyTypeID, int32_t SecondsSinceInitialize,
|
||||
int32_t CopyOfSecondsSinceInitialize);
|
||||
|
||||
// EnemyKilledOrOvercome
|
||||
// The player killed an enemy or overcame or solved a major challenge
|
||||
bool SenStatEnemyKilledOrOvercome(
|
||||
uint32_t dwUserID, int32_t ModeID, int32_t OptionalSubModeID,
|
||||
int32_t LevelID, int32_t OptionalSubLevelID, int32_t LevelInstanceID,
|
||||
int32_t MultiplayerInstanceID, int32_t LowResMapX, int32_t LowResMapY,
|
||||
int32_t LowResMapZ, int32_t MapID, int32_t PlayerWeaponID,
|
||||
int32_t EnemyWeaponID, int32_t EnemyTypeID, int32_t SecondsSinceInitialize,
|
||||
int32_t CopyOfSecondsSinceInitialize);
|
||||
|
||||
// SkinChanged
|
||||
// The player has changed their skin, level and mode are for what the player is
|
||||
// currently in
|
||||
bool SenStatSkinChanged(uint32_t dwUserID, int32_t SecondsSinceInitialize,
|
||||
int32_t ModeID, int32_t OptionalSubModeID,
|
||||
int32_t LevelID, int32_t OptionalSubLevelID,
|
||||
int32_t LevelInstanceID, int32_t MultiplayerInstanceID,
|
||||
int32_t SkinID);
|
||||
|
||||
// BanLevel
|
||||
// The player has banned a level, level and mode are for what the player is
|
||||
// currently in and banning
|
||||
bool SenStatBanLevel(uint32_t dwUserID, int32_t SecondsSinceInitialize,
|
||||
int32_t ModeID, int32_t OptionalSubModeID, int32_t LevelID,
|
||||
int32_t OptionalSubLevelID, int32_t LevelInstanceID,
|
||||
int32_t MultiplayerInstanceID);
|
||||
|
||||
// UnBanLevel
|
||||
// The player has ubbanned a level, level and mode are for what the player is
|
||||
// currently in and unbanning
|
||||
bool SenStatUnBanLevel(uint32_t dwUserID, int32_t SecondsSinceInitialize,
|
||||
int32_t ModeID, int32_t OptionalSubModeID,
|
||||
int32_t LevelID, int32_t OptionalSubLevelID,
|
||||
int32_t LevelInstanceID, int32_t MultiplayerInstanceID);
|
||||
|
|
@ -1,181 +0,0 @@
|
|||
#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,
|
||||
};
|
||||
|
|
@ -1,275 +0,0 @@
|
|||
#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.<EFBFBD> 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 <EFBFBD>in the level before exiting.
|
||||
LevelExitProgressStat2 Refers to the highest level performance metric for your
|
||||
game.<EFBFBD> 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 <EFBFBD>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.<EFBFBD> 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<EFBFBD>s experience, even if they play the same level multiple times. These IDs
|
||||
are critical to allowing us to re-stitch a player<EFBFBD>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,
|
||||
|
||||
eTelemetryTutorial_Horse, // Java 1.6.4
|
||||
eTelemetryTutorial_HorseMenu,
|
||||
eTelemetryTutorial_Fireworks,
|
||||
eTelemetryTutorial_FireworksMenu,
|
||||
eTelemetryTutorial_Beacon,
|
||||
eTelemetryTutorial_BeaconMenu,
|
||||
eTelemetryTutorial_Hopper,
|
||||
eTelemetryTutorial_HopperMenu,
|
||||
|
||||
// Sent over network as a byte
|
||||
};
|
||||
|
|
@ -97,13 +97,9 @@ void MemSect(int sect);
|
|||
|
||||
#ifdef _WINDOWS64
|
||||
#include "Minecraft.Client/Windows64/Windows64_App.h"
|
||||
#include "Minecraft.Client/Windows64/Source Files/Sentient/SentientTelemetryCommon.h"
|
||||
#include "Minecraft.Client/Windows64/Source Files/Sentient/MinecraftTelemetry.h"
|
||||
#else
|
||||
// Use the Linux runtime path with supported metadata/config headers only.
|
||||
#include "Minecraft.Client/Linux/Linux_App.h"
|
||||
#include "Minecraft.Client/Linux/Sentient/SentientTelemetryCommon.h"
|
||||
#include "Minecraft.Client/Linux/Sentient/DynamicConfigurations.h"
|
||||
#endif
|
||||
|
||||
#include "Minecraft.Client/Common/Source Files/DLC/DLCSkinFile.h"
|
||||
|
|
|
|||
Loading…
Reference in a new issue