4 #if defined( VALVE_CALLBACK_PACK_SMALL )
6 #pragma pack( push, 4 )
7 #elif defined( VALVE_CALLBACK_PACK_LARGE )
8 #pragma pack( push, 8 )
11 typedef enum EPersonaChange EPersonaChange
;
14 k_EPersonaChangeName
= 0x0001,
15 k_EPersonaChangeStatus
= 0x0002,
16 k_EPersonaChangeComeOnline
= 0x0004,
17 k_EPersonaChangeGoneOffline
= 0x0008,
18 k_EPersonaChangeGamePlayed
= 0x0010,
19 k_EPersonaChangeGameServer
= 0x0020,
20 k_EPersonaChangeAvatar
= 0x0040,
21 k_EPersonaChangeJoinedSource
= 0x0080,
22 k_EPersonaChangeLeftSource
= 0x0100,
23 k_EPersonaChangeRelationshipChanged
= 0x0200,
24 k_EPersonaChangeNameFirstSet
= 0x0400,
25 k_EPersonaChangeBroadcast
= 0x0800,
26 k_EPersonaChangeNickname
= 0x1000,
27 k_EPersonaChangeSteamLevel
= 0x2000,
28 k_EPersonaChangeRichPresence
= 0x4000,
31 typedef enum EActivateGameOverlayToWebPageMode
32 EActivateGameOverlayToWebPageMode
;
33 enum EActivateGameOverlayToWebPageMode
35 k_EActivateGameOverlayToWebPageMode_Default
= 0,
36 k_EActivateGameOverlayToWebPageMode_Modal
= 1
39 typedef enum EOverlayToStoreFlag EOverlayToStoreFlag
;
40 enum EOverlayToStoreFlag
42 k_EOverlayToStoreFlag_None
= 0,
43 k_EOverlayToStoreFlag_AddToCart
= 1,
44 k_EOverlayToStoreFlag_AddToCartAndShow
= 2,
48 typedef struct GameOverlayActivated_t GameOverlayActivated_t
;
49 struct GameOverlayActivated_t
51 steamapi_bool m_bActive
;
53 enum { k_iGameOverlayActivated
= k_iSteamFriendsCallbacks
+ 31 };
55 typedef struct PersonaStateChange_t PersonaStateChange_t
;
56 struct PersonaStateChange_t
58 u64 m_ulSteamID
; // steamID of the friend who changed
59 int m_nChangeFlags
; // what's changed
61 enum { k_iPersonaStateChange
= k_iSteamFriendsCallbacks
+ 4 };
65 typedef void ISteamFriends
;
66 ISteamFriends
*SteamAPI_SteamFriends_v017(void);
67 static inline ISteamFriends
*SteamAPI_SteamFriends(void)
69 return SteamAPI_SteamFriends_v017();
72 const char *SteamAPI_ISteamFriends_GetPersonaName( ISteamFriends
* self
);
73 const char *SteamAPI_ISteamFriends_GetFriendPersonaName( ISteamFriends
* self
,
76 steamapi_bool
SteamAPI_ISteamFriends_RequestUserInformation(
77 ISteamFriends
* self
, u64_steamid steamIDUser
,
78 steamapi_bool bRequireNameOnly
);
80 void SteamAPI_ISteamFriends_ActivateGameOverlay( ISteamFriends
* self
,
81 const char * pchDialog
);
82 void SteamAPI_ISteamFriends_ActivateGameOverlayToUser( ISteamFriends
* self
,
83 const char * pchDialog
, u64_steamid steamID
);
84 void SteamAPI_ISteamFriends_ActivateGameOverlayToWebPage( ISteamFriends
* self
,
85 const char * pchURL
, EActivateGameOverlayToWebPageMode eMode
);
86 void SteamAPI_ISteamFriends_ActivateGameOverlayToStore( ISteamFriends
* self
,
87 AppId_t nAppID
, EOverlayToStoreFlag eFlag
);
88 void SteamAPI_ISteamFriends_SetPlayedWith( ISteamFriends
* self
,
89 u64_steamid steamIDUserPlayedWith
);
90 void SteamAPI_ISteamFriends_ActivateGameOverlayInviteDialog(
91 ISteamFriends
* self
, u64_steamid steamIDLobby
);
95 k_EFriendFlagNone
= 0x00,
96 k_EFriendFlagBlocked
= 0x01,
97 k_EFriendFlagFriendshipRequested
= 0x02,
98 k_EFriendFlagImmediate
= 0x04, // "regular" friend
99 k_EFriendFlagClanMember
= 0x08,
100 k_EFriendFlagOnGameServer
= 0x10,
101 // k_EFriendFlagHasPlayedWith = 0x20, // not currently used
102 // k_EFriendFlagFriendOfFriend = 0x40, // not currently used
103 k_EFriendFlagRequestingFriendship
= 0x80,
104 k_EFriendFlagRequestingInfo
= 0x100,
105 k_EFriendFlagIgnored
= 0x200,
106 k_EFriendFlagIgnoredFriend
= 0x400,
107 // k_EFriendFlagSuggested = 0x800, // not used
108 k_EFriendFlagChatMember
= 0x1000,
109 k_EFriendFlagAll
= 0xFFFF,
112 steamapi_bool
SteamAPI_ISteamFriends_HasFriend( ISteamFriends
* self
,
113 u64_steamid steamIDFriend
, int iFriendFlags
);