diff options
Diffstat (limited to 'Minecraft.Client/Xbox/Sentient/SentientManager.h')
| -rw-r--r-- | Minecraft.Client/Xbox/Sentient/SentientManager.h | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/Minecraft.Client/Xbox/Sentient/SentientManager.h b/Minecraft.Client/Xbox/Sentient/SentientManager.h new file mode 100644 index 00000000..3cf6df09 --- /dev/null +++ b/Minecraft.Client/Xbox/Sentient/SentientManager.h @@ -0,0 +1,81 @@ +#pragma once +#include "MinecraftTelemetry.h" + +class CSentientManager : public CTelemetryManager +{ +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, + }; + + virtual HRESULT Init(); + virtual HRESULT Tick(); + + virtual HRESULT Flush(); + + virtual BOOL RecordPlayerSessionStart(DWORD dwUserId); + virtual BOOL RecordPlayerSessionExit(DWORD dwUserId, int exitStatus); + virtual BOOL RecordHeartBeat(DWORD dwUserId); + virtual BOOL RecordLevelStart(DWORD dwUserId, ESen_FriendOrMatch friendsOrMatch, ESen_CompeteOrCoop competeOrCoop, int difficulty, DWORD numberOfLocalPlayers, DWORD numberOfOnlinePlayers); + virtual BOOL RecordLevelExit(DWORD dwUserId, ESen_LevelExitStatus levelExitStatus); + virtual BOOL RecordLevelSaveOrCheckpoint(DWORD dwUserId, INT saveOrCheckPointID, INT saveSizeInBytes); + virtual BOOL RecordLevelResume(DWORD dwUserId, ESen_FriendOrMatch friendsOrMatch, ESen_CompeteOrCoop competeOrCoop, int difficulty, DWORD numberOfLocalPlayers, DWORD numberOfOnlinePlayers, INT saveOrCheckPointID); + virtual BOOL RecordPauseOrInactive(DWORD dwUserId); + virtual BOOL RecordUnpauseOrActive(DWORD dwUserId); + virtual BOOL RecordMenuShown(DWORD dwUserId, INT menuID, INT optionalMenuSubID); + virtual BOOL RecordAchievementUnlocked(DWORD dwUserId, INT achievementID, INT achievementGamerscore); + virtual BOOL RecordMediaShareUpload(DWORD dwUserId, ESen_MediaDestination mediaDestination, ESen_MediaType mediaType); + virtual BOOL RecordUpsellPresented(DWORD dwUserId, ESen_UpsellID upsellId, INT marketplaceOfferID); + virtual BOOL RecordUpsellResponded(DWORD dwUserId, ESen_UpsellID upsellId, INT marketplaceOfferID, ESen_UpsellOutcome upsellOutcome); + virtual BOOL RecordPlayerDiedOrFailed(DWORD dwUserId, INT lowResMapX, INT lowResMapY, INT lowResMapZ, INT mapID, INT playerWeaponID, INT enemyWeaponID, ETelemetryChallenges enemyTypeID); + virtual BOOL RecordEnemyKilledOrOvercome(DWORD dwUserId, INT lowResMapX, INT lowResMapY, INT lowResMapZ, INT mapID, INT playerWeaponID, INT enemyWeaponID, ETelemetryChallenges enemyTypeID); + virtual BOOL RecordTexturePackLoaded(DWORD dwUserId, INT texturePackId, INT purchased); + + virtual BOOL RecordSkinChanged(DWORD dwUserId, DWORD dwSkinId); + virtual BOOL RecordBanLevel(DWORD dwUserId); + virtual BOOL RecordUnBanLevel(DWORD dwUserId); + + virtual INT GetMultiplayerInstanceID(); + virtual INT GenerateMultiplayerInstanceId(); + virtual void SetMultiplayerInstanceId(INT value); + +private: + 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(); +};
\ No newline at end of file |
