X-Git-Url: https://harrygodden.com/git/?p=vg.git;a=blobdiff_plain;f=vg_steam_friends.h;h=587e7fc84271fe48cf0b039aeaa2287de5a11a02;hp=eb30f6a5af21c12d570ab3ec47ee2b6b7fa94ef0;hb=HEAD;hpb=81c1746e8550682b581548e262660271b5d4d6dd diff --git a/vg_steam_friends.h b/vg_steam_friends.h index eb30f6a..04685a8 100644 --- a/vg_steam_friends.h +++ b/vg_steam_friends.h @@ -1,6 +1,4 @@ -#ifndef VG_STEAM_FRIENDS_H -#define VG_STEAM_FRIENDS_H - +#pragma once #include "vg_steam.h" #if defined( VALVE_CALLBACK_PACK_SMALL ) @@ -10,6 +8,42 @@ #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 +{ + k_EActivateGameOverlayToWebPageMode_Default = 0, + k_EActivateGameOverlayToWebPageMode_Modal = 1 +}; + +typedef enum EOverlayToStoreFlag EOverlayToStoreFlag; +enum EOverlayToStoreFlag +{ + k_EOverlayToStoreFlag_None = 0, + k_EOverlayToStoreFlag_AddToCart = 1, + k_EOverlayToStoreFlag_AddToCartAndShow = 2, +}; + /* ... */ typedef struct GameOverlayActivated_t GameOverlayActivated_t; struct GameOverlayActivated_t @@ -18,11 +52,19 @@ 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; ISteamFriends *SteamAPI_SteamFriends_v017(void); -ISteamFriends *SteamAPI_SteamFriends(void) +static inline ISteamFriends *SteamAPI_SteamFriends(void) { return SteamAPI_SteamFriends_v017(); } @@ -31,4 +73,41 @@ const char *SteamAPI_ISteamFriends_GetPersonaName( ISteamFriends* self ); const char *SteamAPI_ISteamFriends_GetFriendPersonaName( ISteamFriends* self, u64 steamIDFriend ); -#endif /* VG_STEAM_FRIENDS_H */ +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, + const char * pchDialog, u64_steamid steamID ); +void SteamAPI_ISteamFriends_ActivateGameOverlayToWebPage( ISteamFriends* self, + const char * pchURL, EActivateGameOverlayToWebPageMode eMode ); +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 ); + + +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 );