steamworks
[vg.git] / vg_steam_friends.h
index 5815447f1d14adb06043f98988c2b65e21a5eb1c..0a7f017b1f6f615048818c75f909abf35feda394 100644 (file)
  #pragma pack( push, 8 )
 #endif 
 
+typedef enum EPersonaChange EPersonaChange;
+enum EPersonaChange
+{
+       k_EPersonaChangeName            = 0x0001,
+       k_EPersonaChangeStatus          = 0x0002,
+       k_EPersonaChangeComeOnline      = 0x0004,
+       k_EPersonaChangeGoneOffline     = 0x0008,
+       k_EPersonaChangeGamePlayed      = 0x0010,
+       k_EPersonaChangeGameServer      = 0x0020,
+       k_EPersonaChangeAvatar          = 0x0040,
+       k_EPersonaChangeJoinedSource= 0x0080,
+       k_EPersonaChangeLeftSource      = 0x0100,
+       k_EPersonaChangeRelationshipChanged = 0x0200,
+       k_EPersonaChangeNameFirstSet = 0x0400,
+       k_EPersonaChangeBroadcast = 0x0800,
+       k_EPersonaChangeNickname =      0x1000,
+       k_EPersonaChangeSteamLevel = 0x2000,
+       k_EPersonaChangeRichPresence = 0x4000,
+};
+
 typedef enum EActivateGameOverlayToWebPageMode 
              EActivateGameOverlayToWebPageMode;
 enum EActivateGameOverlayToWebPageMode
@@ -34,6 +54,14 @@ struct GameOverlayActivated_t
 };
 enum { k_iGameOverlayActivated = k_iSteamFriendsCallbacks + 31 };
 
+typedef struct PersonaStateChange_t PersonaStateChange_t;
+struct PersonaStateChange_t
+{
+       u64 m_ulSteamID;                // steamID of the friend who changed
+       int m_nChangeFlags;             // what's changed
+};
+enum { k_iPersonaStateChange = k_iSteamFriendsCallbacks + 4 };
+
 #pragma pack(pop)
 
 typedef void ISteamFriends;
@@ -47,6 +75,10 @@ const char *SteamAPI_ISteamFriends_GetPersonaName( ISteamFriends* self );
 const char *SteamAPI_ISteamFriends_GetFriendPersonaName( ISteamFriends* self,
                                                          u64 steamIDFriend );
 
+steamapi_bool SteamAPI_ISteamFriends_RequestUserInformation( 
+      ISteamFriends* self, u64_steamid steamIDUser, 
+      steamapi_bool bRequireNameOnly );
+
 void SteamAPI_ISteamFriends_ActivateGameOverlay( ISteamFriends* self, 
       const char * pchDialog );
 void SteamAPI_ISteamFriends_ActivateGameOverlayToUser( ISteamFriends* self, 
@@ -57,6 +89,29 @@ void SteamAPI_ISteamFriends_ActivateGameOverlayToStore( ISteamFriends* self,
       AppId_t nAppID, EOverlayToStoreFlag eFlag );
 void SteamAPI_ISteamFriends_SetPlayedWith( ISteamFriends* self, 
       u64_steamid steamIDUserPlayedWith );
-void SteamAPI_ISteamFriends_ActivateGameOverlayInviteDialog( ISteamFriends* self, u64_steamid steamIDLobby );
+void SteamAPI_ISteamFriends_ActivateGameOverlayInviteDialog( 
+      ISteamFriends* self, u64_steamid steamIDLobby );
+
+
+enum EFriendFlags{
+       k_EFriendFlagNone                       = 0x00,
+       k_EFriendFlagBlocked            = 0x01,
+       k_EFriendFlagFriendshipRequested        = 0x02,
+       k_EFriendFlagImmediate          = 0x04,                 // "regular" friend
+       k_EFriendFlagClanMember         = 0x08,
+       k_EFriendFlagOnGameServer       = 0x10, 
+       // k_EFriendFlagHasPlayedWith   = 0x20, // not currently used
+       // k_EFriendFlagFriendOfFriend  = 0x40, // not currently used
+       k_EFriendFlagRequestingFriendship = 0x80,
+       k_EFriendFlagRequestingInfo = 0x100,
+       k_EFriendFlagIgnored            = 0x200,
+       k_EFriendFlagIgnoredFriend      = 0x400,
+       // k_EFriendFlagSuggested               = 0x800,        // not used
+       k_EFriendFlagChatMember         = 0x1000,
+       k_EFriendFlagAll                        = 0xFFFF,
+};
+
+steamapi_bool SteamAPI_ISteamFriends_HasFriend( ISteamFriends* self, 
+                     u64_steamid steamIDFriend, int iFriendFlags );
 
 #endif /* VG_STEAM_FRIENDS_H */