mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/4jcraft.git
synced 2026-07-05 12:04:17 +00:00
restructure codebase according to vcproj filters
This commit is contained in:
@@ -0,0 +1,7 @@
|
||||
#include "../../../../Minecraft.World/Header Files/stdafx.h"
|
||||
|
||||
#include "WindowsLeaderboardManager.h"
|
||||
|
||||
LeaderboardManager* LeaderboardManager::m_instance =
|
||||
new WindowsLeaderboardManager(); // Singleton instance of the
|
||||
// LeaderboardManager
|
||||
@@ -0,0 +1,51 @@
|
||||
#pragma once
|
||||
|
||||
#include "../../../Common/Source Files/Leaderboards/LeaderboardManager.h"
|
||||
|
||||
class WindowsLeaderboardManager : public LeaderboardManager {
|
||||
public:
|
||||
virtual void Tick() {}
|
||||
|
||||
// Open a session
|
||||
virtual bool OpenSession() { return true; }
|
||||
|
||||
// Close a session
|
||||
virtual void CloseSession() {}
|
||||
|
||||
// Delete a session
|
||||
virtual void DeleteSession() {}
|
||||
|
||||
// Write the given stats
|
||||
// This is called synchronously and will not free any memory allocated for
|
||||
// views when it is done
|
||||
|
||||
virtual bool WriteStats(unsigned int viewCount, ViewIn views) {
|
||||
return false;
|
||||
}
|
||||
|
||||
virtual bool ReadStats_Friends(LeaderboardReadListener* callback,
|
||||
int difficulty, EStatsType type,
|
||||
PlayerUID myUID) {
|
||||
return false;
|
||||
}
|
||||
virtual bool ReadStats_MyScore(LeaderboardReadListener* callback,
|
||||
int difficulty, EStatsType type,
|
||||
PlayerUID myUID, unsigned int readCount) {
|
||||
return false;
|
||||
}
|
||||
virtual bool ReadStats_TopRank(LeaderboardReadListener* callback,
|
||||
int difficulty, EStatsType type,
|
||||
unsigned int startIndex,
|
||||
unsigned int readCount) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Perform a flush of the stats
|
||||
virtual void FlushStats() {}
|
||||
|
||||
// Cancel the current operation
|
||||
virtual void CancelOperation() {}
|
||||
|
||||
// Is the leaderboard manager idle.
|
||||
virtual bool isIdle() { return true; }
|
||||
};
|
||||
@@ -0,0 +1,141 @@
|
||||
#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);
|
||||
};
|
||||
@@ -0,0 +1,4 @@
|
||||
#pragma once
|
||||
#include "SentientTelemetryCommon.h"
|
||||
#include "TelemetryEnum.h"
|
||||
#include "SentientStats.h"
|
||||
@@ -0,0 +1,106 @@
|
||||
#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;
|
||||
184
Minecraft.Client/Windows64/Source Files/Sentient/SentientStats.h
Normal file
184
Minecraft.Client/Windows64/Source Files/Sentient/SentientStats.h
Normal file
@@ -0,0 +1,184 @@
|
||||
/************************************************************************/
|
||||
/* 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);
|
||||
@@ -0,0 +1,181 @@
|
||||
#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,
|
||||
};
|
||||
275
Minecraft.Client/Windows64/Source Files/Sentient/TelemetryEnum.h
Normal file
275
Minecraft.Client/Windows64/Source Files/Sentient/TelemetryEnum.h
Normal file
@@ -0,0 +1,275 @@
|
||||
#pragma once
|
||||
|
||||
/*
|
||||
AchievementGamerscore Value in gamerscore of the achievement
|
||||
AchievementID ID of achievement unlocked
|
||||
EnemyTypeID What type of enemy or challenge was the player facing? To
|
||||
prevent data-loss by overflowing the buffer, we recommend enemy type.
|
||||
EnemyWeaponID What weapon the enemy is holding or what counter/AI the enemy is
|
||||
taking to overcome a challenge EnrollmentType How did players enroll? (Using
|
||||
Kinect) LandscapeOrPortrait Are you currently showing in landscape or
|
||||
portrait mode? (Win8 only) LevelDurationInSeconds How long, total, has the
|
||||
user been playing in this level - whatever best represents this duration for
|
||||
attempting the level you'd like to track. LevelExitProgressStat1 Refers
|
||||
to the highest level performance metric for your game.<2E> For example, a
|
||||
performance metric could points earned, race time, total kills, etc. This is
|
||||
entirely up to you and will help us understand how well the player performed, or
|
||||
how far the player progressed <20>in the level before exiting.
|
||||
LevelExitProgressStat2 Refers to the highest level performance metric for your
|
||||
game.<2E> For example, a performance metric could points earned, race time, total
|
||||
kills, etc. This is entirely up to you and will help us understand how well the
|
||||
player performed, or how far the player progressed <20>in the level before exiting.
|
||||
LevelID This is a more granular view of mode, allowing teams to get a sense of
|
||||
the levels or maps players are playing and providing some insight into how
|
||||
players progress through a game. Teams will have to provide the game mappings
|
||||
that correspond to the integers. The intent is that a level is highest level at
|
||||
which modes can be dissected and provides an indication of player progression in
|
||||
a game. The intent is that level start and ends do not occur more than every 2
|
||||
minutes or so, otherwise the data reported will be difficult to understand.
|
||||
Levels are unique only within a given modeID - so you can have a ModeID =1,
|
||||
LevelID =1 and a different ModeID=2, LevelID = 1 indicate two completely
|
||||
different levels. LevelID = 0 means undefined or unknown. LevelInstanceID
|
||||
Generated by the game every time LevelStart or LevelResume is called. This
|
||||
should be a unique ID (can be sequential) within a session. LowResMapX Player
|
||||
position normalized to 0-255 LowResMapY Player position normalized to 0-255
|
||||
LowResMapZ Player position normalized to 0-255
|
||||
MapID Unique ID for the current map the player is on
|
||||
MarketplaceOfferID Unique ID for the Xbox LIVE marketplace offer that the
|
||||
upsell links to MicroGoodTypeID Describes the type of consumable or microgood
|
||||
MultiplayerInstanceID multiplayerinstanceID is a title-generated value that is
|
||||
the same for all players in the same multiplayer session.<2E> NumberOfLocalPlayers
|
||||
the number of players that are playing together in the game locally in the
|
||||
current session (on the same piece of hardware) NumberOfOnlinePlayers the
|
||||
number of players that are playing together in the game online in the current
|
||||
session (not on the same piece of hardware) NumberOfSkeletonsInView the max
|
||||
and min of skeletons that were in view, regardless of enrollment
|
||||
OptionalSubLevelID Used when a title has more heirarchy required.
|
||||
OptionalSubLevel ID = 0 means undefined or unknown. OptionalSubModeID Used
|
||||
when a title has more heirarchy required. OptionalSubMode ID = 0 means
|
||||
undefined or unknown. PlayerLevelUpProgressStat1 Refers to a performance
|
||||
metric for your player when they level or rank up. This is entirely up to you
|
||||
and will help us understand how well the player performed, or how far the player
|
||||
has progressed. PlayerLevelUpProgressStat2 Refers to a performance metric
|
||||
for your player when they level or rank up. This is entirely up to you and will
|
||||
help us understand how well the player performed, or how far the player has
|
||||
progressed. PlayerWeaponID What weapon the player is holding or what
|
||||
approach/tact the player is taking to overcome a challenge
|
||||
PlayspaceFeedbackWarningDirection identifies which side of the playspace
|
||||
players are getting too close to that results in the playspace feedback
|
||||
SaveOrCheckpointID It is important that you also generate and save a unique
|
||||
SaveOrCheckpointID that can be read and reported when the player resumes from
|
||||
this save file or checkpoint. These IDs should be completely unique across the
|
||||
player<EFBFBD>s experience, even if they play the same level multiple times. These IDs
|
||||
are critical to allowing us to re-stitch a player<65>s experience in your title and
|
||||
provide an accurate measure of time in level. SecondsSinceInitialize Number
|
||||
of seconds elapsed since Sentient initialize. SecondsSinceInitializeMax Number
|
||||
of seconds elapsed since Sentient initialize. SecondsSinceInitializeMin Number
|
||||
of seconds elapsed since Sentient initialize. SkeletonDistanceInInches
|
||||
Identifies the distance of the skeleton from the Kinect sensor TitleBuildID
|
||||
Build version of the title, used to track changes in development as well as
|
||||
patches/title updates
|
||||
*/
|
||||
|
||||
/*
|
||||
ModeID
|
||||
An in-game setting that significantly differentiates the play style of the game.
|
||||
(This should be captured as an integer and correspond to mode specific to the
|
||||
game.) Teams will have to provide the game mappings that correspond to the
|
||||
integers. The intent is to allow teams to capture data on the highest level
|
||||
categories of gameplay in their game. For example, a game mode could be the name
|
||||
of the specific mini game (eg: golf vs darts) or a specific multiplayer mode
|
||||
(eg: hoard vs beast.) ModeID = 0 means undefined or unknown.
|
||||
*/
|
||||
enum ETelem_ModeId {
|
||||
eTelem_ModeId_Undefined = 0,
|
||||
eTelem_ModeId_Survival,
|
||||
eTelem_ModeId_Creative, // Unused in current game version
|
||||
};
|
||||
|
||||
/*
|
||||
OptionalSubModeID
|
||||
Used when a title has more heirarchy required.
|
||||
OptionalSubMode ID = 0 means undefined or unknown.
|
||||
*/
|
||||
enum ETelem_SubModeId {
|
||||
eTelem_SubModeId_Undefined = 0,
|
||||
eTelem_SubModeId_Normal,
|
||||
eTelem_SubModeId_Tutorial,
|
||||
};
|
||||
|
||||
/*
|
||||
LevelID
|
||||
This is a more granular view of mode, allowing teams to get a sense of the
|
||||
levels or maps players are playing and providing some insight into how players
|
||||
progress through a game. Teams will have to provide the game mappings that
|
||||
correspond to the integers. The intent is that a level is highest level at which
|
||||
modes can be dissected and provides an indication of player progression in a
|
||||
game. The intent is that level start and ends do not occur more than every 2
|
||||
minutes or so, otherwise the data reported will be difficult to understand.
|
||||
Levels are unique only within a given modeID - so you can have a ModeID =1,
|
||||
LevelID =1 and a different ModeID=2, LevelID = 1 indicate two completely
|
||||
different levels. LevelID = 0 means undefined or unknown.
|
||||
*/
|
||||
enum ETelem_LevelId {
|
||||
eTelem_LevelId_Undefined = 0,
|
||||
eTelem_LevelId_PlayerGeneratedLevel = 1,
|
||||
// 4J Stu - We currently do not have any specific levels (other than the
|
||||
// tutorial which is tracked as a mode) so this is unused at the moment
|
||||
};
|
||||
|
||||
/*
|
||||
OptionalSubLevelID
|
||||
Used when a title has more heirarchy required. OptionalSubLevel ID = 0 means
|
||||
undefined or unknown.
|
||||
*/
|
||||
enum ETelem_SubLevelId {
|
||||
eTelem_SubLevelId_Undefined = 0,
|
||||
eTelem_SubLevelId_Overworld,
|
||||
eTelem_SubLevelId_Nether,
|
||||
eTelem_SubLevelId_End,
|
||||
};
|
||||
|
||||
/*
|
||||
MenuID
|
||||
Describes the specific menu seen. MenuID = 0 means undefined or unknown.
|
||||
*/
|
||||
// 4J Stu - FOR REFERENCE ONLY - Should map 1:1 with the
|
||||
// CConsoleMinecraftApp:EUIScene enum Values that are commented out here are not
|
||||
// currently reported
|
||||
enum ETelem_MenuId {
|
||||
// eTelemMenuId_PartnernetPassword = 0,
|
||||
// eTelemMenuId_Intro = 1,
|
||||
// eTelemMenuId_SaveMessage = 2,
|
||||
// eTelemMenuId_Main = 3,
|
||||
// eTelemMenuId_FullscreenProgress = 4,
|
||||
eTelemMenuId_Pause = 5,
|
||||
// eTelemMenuId_CraftingPanel_2x2 = 6,
|
||||
// eTelemMenuId_CraftingPanel_3x3 = 7,
|
||||
// eTelemMenuId_Furnace = 8,
|
||||
// eTelemMenuId_Container = 9,
|
||||
// eTelemMenuId_Largecontainer_small = 10,// for splitscreen
|
||||
// eTelemMenuId_Inventory = 11,
|
||||
// eTelemMenuId_Trap = 12,
|
||||
// eTelemMenuId_Debug = 13,
|
||||
// eTelemMenuId_DebugTips = 14,
|
||||
// eTelemMenuId_HelpAndOptions = 15,
|
||||
eTelemMenuId_HowToPlay = 16,
|
||||
// eTelemMenuId_HowToPlayMenu = 17,
|
||||
// eTelemMenuId_Controls = 18,
|
||||
// eTelemMenuId_Settings_Menu = 19,
|
||||
// eTelemMenuId_Settings_All = 20,
|
||||
// eTelemMenuId_Leaderboards = 21,
|
||||
// eTelemMenuId_Credits = 22,
|
||||
// eTelemMenuId_Death = 23,
|
||||
// eTelemMenuId_TutorialPopup = 24,
|
||||
eTelemMenuId_MultiGameCreate = 25,
|
||||
// eTelemMenuId_MultiGameJoinLoad = 26,
|
||||
eTelemMenuId_MultiGameInfo = 27,
|
||||
// eTelemMenuId_SignEntry = 28,
|
||||
// eTelemMenuId_InGameInfo = 29,
|
||||
// eTelemMenuId_ConnectingProgress = 30,
|
||||
eTelemMenuId_DLCOffers = 31,
|
||||
eTelemMenuId_SocialPost = 32,
|
||||
// eTelemMenuId_TrialExitUpsell = 33,
|
||||
eTelemMenuId_LoadSettings = 34,
|
||||
// eTelemMenuId_Chat = 35,
|
||||
// eTelemMenuId_Reinstall = 36,
|
||||
};
|
||||
|
||||
/*
|
||||
OptionalSubMenuID
|
||||
Used when a title has more heirarchy required. OptionalSubMenuID = 0 means
|
||||
undefined or unknown.
|
||||
*/
|
||||
enum ETelemetry_HowToPlay_SubMenuId {
|
||||
eTelemetryHowToPlay_Basics = 0,
|
||||
eTelemetryHowToPlay_HUD,
|
||||
eTelemetryHowToPlay_Inventory,
|
||||
eTelemetryHowToPlay_Chest,
|
||||
eTelemetryHowToPlay_LargeChest,
|
||||
eTelemetryHowToPlay_InventoryCrafting,
|
||||
eTelemetryHowToPlay_CraftTable,
|
||||
eTelemetryHowToPlay_Furnace,
|
||||
eTelemetryHowToPlay_Dispenser,
|
||||
eTelemetryHowToPlay_NetherPortal,
|
||||
};
|
||||
|
||||
/*
|
||||
EnemyTypeID What type of enemy or challenge was the player facing?
|
||||
To prevent data-loss by overflowing the buffer, we recommend enemy type.
|
||||
*/
|
||||
enum ETelemetryChallenges {
|
||||
eTelemetryChallenges_Unknown = 0,
|
||||
|
||||
eTelemetryTutorial_TrialStart,
|
||||
eTelemetryTutorial_Halfway,
|
||||
eTelemetryTutorial_Complete,
|
||||
|
||||
eTelemetryTutorial_Inventory,
|
||||
eTelemetryTutorial_Crafting,
|
||||
eTelemetryTutorial_Furnace,
|
||||
eTelemetryTutorial_Fishing,
|
||||
eTelemetryTutorial_Minecart,
|
||||
eTelemetryTutorial_Boat,
|
||||
eTelemetryTutorial_Bed,
|
||||
|
||||
eTelemetryTutorial_Redstone_And_Pistons,
|
||||
eTelemetryTutorial_Portal,
|
||||
eTelemetryTutorial_FoodBar,
|
||||
eTelemetryTutorial_CreativeMode,
|
||||
eTelemetryTutorial_BrewingMenu,
|
||||
|
||||
eTelemetryInGame_Ride_Minecart,
|
||||
eTelemetryInGame_Ride_Boat,
|
||||
eTelemetryInGame_Ride_Pig,
|
||||
eTelemetryInGame_UseBed,
|
||||
|
||||
eTelemetryTutorial_CreativeInventory, // Added TU5
|
||||
|
||||
eTelemetryTutorial_EnchantingMenu,
|
||||
eTelemetryTutorial_Brewing,
|
||||
eTelemetryTutorial_Enchanting,
|
||||
eTelemetryTutorial_Farming,
|
||||
|
||||
eTelemetryPlayerDeathSource_Fall,
|
||||
eTelemetryPlayerDeathSource_Lava,
|
||||
eTelemetryPlayerDeathSource_Fire,
|
||||
eTelemetryPlayerDeathSource_Water,
|
||||
eTelemetryPlayerDeathSource_Suffocate,
|
||||
eTelemetryPlayerDeathSource_OutOfWorld,
|
||||
eTelemetryPlayerDeathSource_Cactus,
|
||||
|
||||
eTelemetryPlayerDeathSource_Player_Weapon,
|
||||
eTelemetryPlayerDeathSource_Player_Arrow,
|
||||
|
||||
eTelemetryPlayerDeathSource_Explosion_Tnt,
|
||||
eTelemetryPlayerDeathSource_Explosion_Creeper,
|
||||
|
||||
eTelemetryPlayerDeathSource_Wolf,
|
||||
eTelemetryPlayerDeathSource_Zombie,
|
||||
eTelemetryPlayerDeathSource_Skeleton,
|
||||
eTelemetryPlayerDeathSource_Spider,
|
||||
eTelemetryPlayerDeathSource_Slime,
|
||||
eTelemetryPlayerDeathSource_Ghast,
|
||||
eTelemetryPlayerDeathSource_ZombiePigman,
|
||||
|
||||
eTelemetryTutorial_Breeding,
|
||||
eTelemetryTutorial_Golem,
|
||||
|
||||
eTelemetryTutorial_Anvil, // Added TU14
|
||||
eTelemetryTutorial_AnvilMenu,
|
||||
eTelemetryTutorial_Trading,
|
||||
eTelemetryTutorial_TradingMenu,
|
||||
eTelemetryTutorial_Enderchest,
|
||||
|
||||
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
|
||||
};
|
||||
134
Minecraft.Client/Windows64/Source Files/Social/SocialManager.h
Normal file
134
Minecraft.Client/Windows64/Source Files/Social/SocialManager.h
Normal file
@@ -0,0 +1,134 @@
|
||||
//
|
||||
// Class to handle and manage integration with social networks.
|
||||
// 4J Studios Ltd, 2011.
|
||||
// Andy West
|
||||
//
|
||||
|
||||
#if !defined(_SOCIAL_MANAGER_H)
|
||||
#define _SOCIAL_MANAGER_H
|
||||
|
||||
#if !defined(__linux__)
|
||||
#include <xsocialpost.h>
|
||||
#endif
|
||||
|
||||
#define MAX_SOCIALPOST_CAPTION 60
|
||||
#define MAX_SOCIALPOST_DESC 100
|
||||
|
||||
// XDK only provides for facebook so far. Others may follow!?
|
||||
enum ESocialNetwork { eFacebook = 0, eNumSocialNetworks };
|
||||
|
||||
// Class follows singleton design pattern.
|
||||
class CSocialManager {
|
||||
private:
|
||||
// Default constructor, copy constructor and assignment operator are all
|
||||
// private.
|
||||
CSocialManager();
|
||||
CSocialManager(const CSocialManager&);
|
||||
CSocialManager& operator=(const CSocialManager&);
|
||||
|
||||
// Static private instance.
|
||||
static CSocialManager* m_pInstance;
|
||||
|
||||
// Bitset of title posting capability flags ( XSOCIAL_CAPABILITY_POSTIMAGE,
|
||||
// XSOCIAL_CAPABILITY_POSTLINK ).
|
||||
uint32_t m_dwSocialPostingCapability;
|
||||
|
||||
// Index of user who made current active request.
|
||||
uint32_t m_dwCurrRequestUser;
|
||||
|
||||
// WESTY : Not sure if we even need to get social access key!
|
||||
/*
|
||||
// Size of the social network access key text buffer.
|
||||
uint32_t m_dwAccessKeyTextSize;
|
||||
|
||||
// Pointer to the social network access key text buffer.
|
||||
wchar_t* m_pAccessKeyText;
|
||||
*/
|
||||
|
||||
// The various states of the manager.
|
||||
enum EState {
|
||||
eStateUnitialised = 0,
|
||||
eStateReady,
|
||||
eStateGetPostingCapability,
|
||||
eStatePostingImage,
|
||||
eStatePostingLink,
|
||||
};
|
||||
|
||||
// Current state that manager is in.
|
||||
EState m_eCurrState;
|
||||
|
||||
// For xsocial asyncronous operations.
|
||||
XOVERLAPPED m_Overlapped;
|
||||
uint32_t m_dwOverlappedResultCode;
|
||||
|
||||
// Social post preview image struct.
|
||||
XSOCIAL_PREVIEWIMAGE m_PostPreviewImage;
|
||||
|
||||
// Image details for posting an image to social network.
|
||||
unsigned char* m_pMainImageBuffer;
|
||||
uint32_t m_dwMainImageBufferSize;
|
||||
|
||||
void DestroyMainPostImage();
|
||||
void DestroyPreviewPostImage();
|
||||
|
||||
// WESTY : Not sure if we even need to get social access key!
|
||||
/*
|
||||
bool GetSocialNetworkAccessKey( ESocialNetwork
|
||||
eSocialNetwork, uint32_t dwUserIndex, bool bUsingKinect, uint32_t
|
||||
dwUserTrackingIndex, bool bShowNetworkSignin );
|
||||
*/
|
||||
|
||||
public:
|
||||
// Retrieve singleton instance.
|
||||
static CSocialManager* Instance();
|
||||
|
||||
// To be called once during game init.
|
||||
void Initialise();
|
||||
|
||||
// Tick the social manager. Only does anything in async mode, polls for
|
||||
// results of async actions.
|
||||
void Tick();
|
||||
|
||||
// May need to be called if something changes (i.e. player signs in to live
|
||||
// ).
|
||||
bool RefreshPostingCapability();
|
||||
|
||||
// Returns true if any social newtork posting is allowed by us, false if not
|
||||
// (if false, game must not display any social network UI).
|
||||
bool IsTitleAllowedToPostAnything();
|
||||
|
||||
// Returns true if we are allowed to post images to social networks.
|
||||
bool IsTitleAllowedToPostImages();
|
||||
|
||||
// Returns true if we are allowed to post links to social networks.
|
||||
bool IsTitleAllowedToPostLinks();
|
||||
|
||||
// Returns false if any of the live signed in users have disabled
|
||||
// XPRIVILEGE_SOCIAL_NETWORK_SHARING
|
||||
bool AreAllUsersAllowedToPostImages();
|
||||
|
||||
// Post a test link to social network.
|
||||
bool PostLinkToSocialNetwork(ESocialNetwork eSocialNetwork,
|
||||
uint32_t dwUserIndex, bool bUsingKinect);
|
||||
|
||||
// Post a test image to social network.
|
||||
bool PostImageToSocialNetwork(ESocialNetwork eSocialNetwork,
|
||||
uint32_t dwUserIndex, bool bUsingKinect);
|
||||
|
||||
void SetSocialPostText(const wchar_t* Title, const wchar_t* Caption,
|
||||
const wchar_t* Desc);
|
||||
|
||||
// WESTY : Not sure if we even need to get social access key!
|
||||
/*
|
||||
// We do not currently know what this is used for. We may not even
|
||||
need it? bool ObtainSocialNetworkAccessKey( ESocialNetwork
|
||||
eSocialNetwork, uint32_t dwUserIndex, bool bUsingKinect );
|
||||
*/
|
||||
|
||||
private:
|
||||
wchar_t m_wchTitleA[MAX_SOCIALPOST_CAPTION + 1];
|
||||
wchar_t m_wchCaptionA[MAX_SOCIALPOST_CAPTION + 1];
|
||||
wchar_t m_wchDescA[MAX_SOCIALPOST_DESC + 1];
|
||||
};
|
||||
|
||||
#endif
|
||||
1092
Minecraft.Client/Windows64/Source Files/Windows64_Minecraft.cpp
Normal file
1092
Minecraft.Client/Windows64/Source Files/Windows64_Minecraft.cpp
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user