bad char
[vg.git] / vg_steam_friends.h
1 #pragma once
2 #include "vg_steam.h"
3
4 #if defined( VALVE_CALLBACK_PACK_SMALL )
5 ;
6 #pragma pack( push, 4 )
7 #elif defined( VALVE_CALLBACK_PACK_LARGE )
8 #pragma pack( push, 8 )
9 #endif
10
11 typedef enum EPersonaChange EPersonaChange;
12 enum EPersonaChange
13 {
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,
29 };
30
31 typedef enum EActivateGameOverlayToWebPageMode
32 EActivateGameOverlayToWebPageMode;
33 enum EActivateGameOverlayToWebPageMode
34 {
35 k_EActivateGameOverlayToWebPageMode_Default = 0,
36 k_EActivateGameOverlayToWebPageMode_Modal = 1
37 };
38
39 typedef enum EOverlayToStoreFlag EOverlayToStoreFlag;
40 enum EOverlayToStoreFlag
41 {
42 k_EOverlayToStoreFlag_None = 0,
43 k_EOverlayToStoreFlag_AddToCart = 1,
44 k_EOverlayToStoreFlag_AddToCartAndShow = 2,
45 };
46
47 /* ... */
48 typedef struct GameOverlayActivated_t GameOverlayActivated_t;
49 struct GameOverlayActivated_t
50 {
51 steamapi_bool m_bActive;
52 };
53 enum { k_iGameOverlayActivated = k_iSteamFriendsCallbacks + 31 };
54
55 typedef struct PersonaStateChange_t PersonaStateChange_t;
56 struct PersonaStateChange_t
57 {
58 u64 m_ulSteamID; // steamID of the friend who changed
59 int m_nChangeFlags; // what's changed
60 };
61 enum { k_iPersonaStateChange = k_iSteamFriendsCallbacks + 4 };
62
63 #pragma pack(pop)
64
65 typedef void ISteamFriends;
66 ISteamFriends *SteamAPI_SteamFriends_v017(void);
67 static inline ISteamFriends *SteamAPI_SteamFriends(void)
68 {
69 return SteamAPI_SteamFriends_v017();
70 }
71
72 const char *SteamAPI_ISteamFriends_GetPersonaName( ISteamFriends* self );
73 const char *SteamAPI_ISteamFriends_GetFriendPersonaName( ISteamFriends* self,
74 u64 steamIDFriend );
75
76 steamapi_bool SteamAPI_ISteamFriends_RequestUserInformation(
77 ISteamFriends* self, u64_steamid steamIDUser,
78 steamapi_bool bRequireNameOnly );
79
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 );
92
93
94 enum EFriendFlags{
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,
110 };
111
112 steamapi_bool SteamAPI_ISteamFriends_HasFriend( ISteamFriends* self,
113 u64_steamid steamIDFriend, int iFriendFlags );