1 #ifndef VG_STEAM_FRIENDS_H
2 #define VG_STEAM_FRIENDS_H
6 #if defined( VALVE_CALLBACK_PACK_SMALL )
8 #pragma pack( push, 4 )
9 #elif defined( VALVE_CALLBACK_PACK_LARGE )
10 #pragma pack( push, 8 )
13 typedef enum EPersonaChange EPersonaChange
;
16 k_EPersonaChangeName
= 0x0001,
17 k_EPersonaChangeStatus
= 0x0002,
18 k_EPersonaChangeComeOnline
= 0x0004,
19 k_EPersonaChangeGoneOffline
= 0x0008,
20 k_EPersonaChangeGamePlayed
= 0x0010,
21 k_EPersonaChangeGameServer
= 0x0020,
22 k_EPersonaChangeAvatar
= 0x0040,
23 k_EPersonaChangeJoinedSource
= 0x0080,
24 k_EPersonaChangeLeftSource
= 0x0100,
25 k_EPersonaChangeRelationshipChanged
= 0x0200,
26 k_EPersonaChangeNameFirstSet
= 0x0400,
27 k_EPersonaChangeBroadcast
= 0x0800,
28 k_EPersonaChangeNickname
= 0x1000,
29 k_EPersonaChangeSteamLevel
= 0x2000,
30 k_EPersonaChangeRichPresence
= 0x4000,
33 typedef enum EActivateGameOverlayToWebPageMode
34 EActivateGameOverlayToWebPageMode
;
35 enum EActivateGameOverlayToWebPageMode
37 k_EActivateGameOverlayToWebPageMode_Default
= 0,
38 k_EActivateGameOverlayToWebPageMode_Modal
= 1
41 typedef enum EOverlayToStoreFlag EOverlayToStoreFlag
;
42 enum EOverlayToStoreFlag
44 k_EOverlayToStoreFlag_None
= 0,
45 k_EOverlayToStoreFlag_AddToCart
= 1,
46 k_EOverlayToStoreFlag_AddToCartAndShow
= 2,
50 typedef struct GameOverlayActivated_t GameOverlayActivated_t
;
51 struct GameOverlayActivated_t
53 steamapi_bool m_bActive
;
55 enum { k_iGameOverlayActivated
= k_iSteamFriendsCallbacks
+ 31 };
57 typedef struct PersonaStateChange_t PersonaStateChange_t
;
58 struct PersonaStateChange_t
60 u64 m_ulSteamID
; // steamID of the friend who changed
61 int m_nChangeFlags
; // what's changed
63 enum { k_iPersonaStateChange
= k_iSteamFriendsCallbacks
+ 4 };
67 typedef void ISteamFriends
;
68 ISteamFriends
*SteamAPI_SteamFriends_v017(void);
69 ISteamFriends
*SteamAPI_SteamFriends(void)
71 return SteamAPI_SteamFriends_v017();
74 const char *SteamAPI_ISteamFriends_GetPersonaName( ISteamFriends
* self
);
75 const char *SteamAPI_ISteamFriends_GetFriendPersonaName( ISteamFriends
* self
,
78 steamapi_bool
SteamAPI_ISteamFriends_RequestUserInformation(
79 ISteamFriends
* self
, u64_steamid steamIDUser
,
80 steamapi_bool bRequireNameOnly
);
82 void SteamAPI_ISteamFriends_ActivateGameOverlay( ISteamFriends
* self
,
83 const char * pchDialog
);
84 void SteamAPI_ISteamFriends_ActivateGameOverlayToUser( ISteamFriends
* self
,
85 const char * pchDialog
, u64_steamid steamID
);
86 void SteamAPI_ISteamFriends_ActivateGameOverlayToWebPage( ISteamFriends
* self
,
87 const char * pchURL
, EActivateGameOverlayToWebPageMode eMode
);
88 void SteamAPI_ISteamFriends_ActivateGameOverlayToStore( ISteamFriends
* self
,
89 AppId_t nAppID
, EOverlayToStoreFlag eFlag
);
90 void SteamAPI_ISteamFriends_SetPlayedWith( ISteamFriends
* self
,
91 u64_steamid steamIDUserPlayedWith
);
92 void SteamAPI_ISteamFriends_ActivateGameOverlayInviteDialog(
93 ISteamFriends
* self
, u64_steamid steamIDLobby
);
97 k_EFriendFlagNone
= 0x00,
98 k_EFriendFlagBlocked
= 0x01,
99 k_EFriendFlagFriendshipRequested
= 0x02,
100 k_EFriendFlagImmediate
= 0x04, // "regular" friend
101 k_EFriendFlagClanMember
= 0x08,
102 k_EFriendFlagOnGameServer
= 0x10,
103 // k_EFriendFlagHasPlayedWith = 0x20, // not currently used
104 // k_EFriendFlagFriendOfFriend = 0x40, // not currently used
105 k_EFriendFlagRequestingFriendship
= 0x80,
106 k_EFriendFlagRequestingInfo
= 0x100,
107 k_EFriendFlagIgnored
= 0x200,
108 k_EFriendFlagIgnoredFriend
= 0x400,
109 // k_EFriendFlagSuggested = 0x800, // not used
110 k_EFriendFlagChatMember
= 0x1000,
111 k_EFriendFlagAll
= 0xFFFF,
114 steamapi_bool
SteamAPI_ISteamFriends_HasFriend( ISteamFriends
* self
,
115 u64_steamid steamIDFriend
, int iFriendFlags
);
117 #endif /* VG_STEAM_FRIENDS_H */