mirror of
https://github.com/4jcraft/4jcraft.git
synced 2026-04-25 10:24:11 +00:00
135 lines
4.7 KiB
C++
135 lines
4.7 KiB
C++
#pragma once
|
|
|
|
#include "../../Common/UI/UIEnums.h"
|
|
#include "../../Xbox/Sentient/SentientTelemetryCommon.h"
|
|
|
|
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
|
|
};
|
|
|
|
class CTelemetryManager
|
|
{
|
|
public:
|
|
virtual HRESULT Init();
|
|
virtual HRESULT Tick();
|
|
virtual HRESULT Flush();
|
|
|
|
virtual bool RecordPlayerSessionStart(int iPad);
|
|
virtual bool RecordPlayerSessionExit(int iPad, int exitStatus);
|
|
virtual bool RecordHeartBeat(int iPad);
|
|
virtual bool RecordLevelStart(int iPad, ESen_FriendOrMatch friendsOrMatch, ESen_CompeteOrCoop competeOrCoop, int difficulty, int numberOfLocalPlayers, int numberOfOnlinePlayers);
|
|
virtual bool RecordLevelExit(int iPad, ESen_LevelExitStatus levelExitStatus);
|
|
virtual bool RecordLevelSaveOrCheckpoint(int iPad, int saveOrCheckPointID, int saveSizeInBytes);
|
|
virtual bool RecordLevelResume(int iPad, ESen_FriendOrMatch friendsOrMatch, ESen_CompeteOrCoop competeOrCoop, int difficulty, int numberOfLocalPlayers, int numberOfOnlinePlayers, int saveOrCheckPointID);
|
|
virtual bool RecordPauseOrInactive(int iPad);
|
|
virtual bool RecordUnpauseOrActive(int iPad);
|
|
virtual bool RecordMenuShown(int iPad, EUIScene menuID, int optionalMenuSubID);
|
|
virtual bool RecordAchievementUnlocked(int iPad, int achievementID, int achievementGamerscore);
|
|
virtual bool RecordMediaShareUpload(int iPad, ESen_MediaDestination mediaDestination, ESen_MediaType mediaType);
|
|
virtual bool RecordUpsellPresented(int iPad, ESen_UpsellID upsellId, int marketplaceOfferID);
|
|
virtual bool RecordUpsellResponded(int iPad, ESen_UpsellID upsellId, int marketplaceOfferID, ESen_UpsellOutcome upsellOutcome);
|
|
virtual bool RecordPlayerDiedOrFailed(int iPad, int lowResMapX, int lowResMapY, int lowResMapZ, int mapID, int playerWeaponID, int enemyWeaponID, ETelemetryChallenges enemyTypeID);
|
|
virtual bool RecordEnemyKilledOrOvercome(int iPad, int lowResMapX, int lowResMapY, int lowResMapZ, int mapID, int playerWeaponID, int enemyWeaponID, ETelemetryChallenges enemyTypeID);
|
|
virtual bool RecordTexturePackLoaded(int iPad, int texturePackId, bool purchased);
|
|
|
|
virtual bool RecordSkinChanged(int iPad, int dwSkinId);
|
|
virtual bool RecordBanLevel(int iPad);
|
|
virtual bool RecordUnBanLevel(int iPad);
|
|
|
|
virtual int GetMultiplayerInstanceID();
|
|
virtual int GenerateMultiplayerInstanceId();
|
|
virtual void SetMultiplayerInstanceId(int value);
|
|
|
|
protected:
|
|
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 CTelemetryManager *TelemetryManager;
|