From 86f1c2e3e6d6be77f13fc80bb21ea40dfce28811 Mon Sep 17 00:00:00 2001 From: Netshroud Date: Sun, 26 May 2013 20:16:34 +1000 Subject: [PATCH] Added known EPersonaStateFlag values and exposed it in callback. Closes #65. --- Resources/SteamLanguage/enums.steamd | 10 ++++++++++ SteamKit2/SteamKit2/Base/Generated/SteamLanguage.cs | 9 +++++++++ .../Steam3/Handlers/SteamFriends/Callbacks.cs | 6 ++++++ .../Steam3/Handlers/SteamFriends/FriendCache.cs | 1 + .../Steam3/Handlers/SteamFriends/SteamFriends.cs | 1 + 5 files changed, 27 insertions(+) diff --git a/Resources/SteamLanguage/enums.steamd b/Resources/SteamLanguage/enums.steamd index d261a3a8..a01e76f1 100644 --- a/Resources/SteamLanguage/enums.steamd +++ b/Resources/SteamLanguage/enums.steamd @@ -152,6 +152,16 @@ enum EFriendFlags flags FlagAll = 65535; }; +enum EPersonaStateFlag flags +{ + HasRichPresence = 1; + InJoinableGame = 2; + + OnlineUsingWeb = 256; + OnlineUsingMobile = 512; + OnlineUsingBigPicture = 1024; +}; + enum EClientPersonaStateFlag flags { Status = 1; diff --git a/SteamKit2/SteamKit2/Base/Generated/SteamLanguage.cs b/SteamKit2/SteamKit2/Base/Generated/SteamLanguage.cs index 138f4700..d8ac5f61 100644 --- a/SteamKit2/SteamKit2/Base/Generated/SteamLanguage.cs +++ b/SteamKit2/SteamKit2/Base/Generated/SteamLanguage.cs @@ -1912,6 +1912,15 @@ namespace SteamKit2 FlagAll = 65535, } [Flags] + public enum EPersonaStateFlag + { + HasRichPresence = 1, + InJoinableGame = 2, + OnlineUsingWeb = 256, + OnlineUsingMobile = 512, + OnlineUsingBigPicture = 1024, + } + [Flags] public enum EClientPersonaStateFlag { Status = 1, diff --git a/SteamKit2/SteamKit2/Steam3/Handlers/SteamFriends/Callbacks.cs b/SteamKit2/SteamKit2/Steam3/Handlers/SteamFriends/Callbacks.cs index 27e9485b..0320ea25 100644 --- a/SteamKit2/SteamKit2/Steam3/Handlers/SteamFriends/Callbacks.cs +++ b/SteamKit2/SteamKit2/Steam3/Handlers/SteamFriends/Callbacks.cs @@ -38,6 +38,11 @@ namespace SteamKit2 /// /// The state. public EPersonaState State { get; private set; } + /// + /// Gets the state flags. + /// + /// The state flags. + public EPersonaStateFlag StateFlags { get; private set; } /// /// Gets the game app ID. @@ -135,6 +140,7 @@ namespace SteamKit2 this.FriendID = friend.friendid; this.State = ( EPersonaState )friend.persona_state; + this.StateFlags = ( EPersonaStateFlag )friend.persona_state_flags; this.GameAppID = friend.game_played_app_id; this.GameID = friend.gameid; diff --git a/SteamKit2/SteamKit2/Steam3/Handlers/SteamFriends/FriendCache.cs b/SteamKit2/SteamKit2/Steam3/Handlers/SteamFriends/FriendCache.cs index 8de306fa..41d02486 100644 --- a/SteamKit2/SteamKit2/Steam3/Handlers/SteamFriends/FriendCache.cs +++ b/SteamKit2/SteamKit2/Steam3/Handlers/SteamFriends/FriendCache.cs @@ -30,6 +30,7 @@ namespace SteamKit2 public EFriendRelationship Relationship { get; set; } public EPersonaState PersonaState { get; set; } + public EPersonaStateFlag PersonaStateFlags { get; set; } public uint GameAppID { get; set; } public GameID GameID { get; set; } diff --git a/SteamKit2/SteamKit2/Steam3/Handlers/SteamFriends/SteamFriends.cs b/SteamKit2/SteamKit2/Steam3/Handlers/SteamFriends/SteamFriends.cs index 198c993a..0ebdf37d 100644 --- a/SteamKit2/SteamKit2/Steam3/Handlers/SteamFriends/SteamFriends.cs +++ b/SteamKit2/SteamKit2/Steam3/Handlers/SteamFriends/SteamFriends.cs @@ -686,6 +686,7 @@ namespace SteamKit2 { cacheFriend.AvatarHash = friend.avatar_hash; cacheFriend.PersonaState = ( EPersonaState )friend.persona_state; + cacheFriend.PersonaStateFlags = ( EPersonaStateFlag )friend.persona_state_flags; } if ( ( flags & EClientPersonaStateFlag.GameExtraInfo ) == EClientPersonaStateFlag.GameExtraInfo )