From 8340e9c7406c7292f85266f9f30f4b5ff246dcd3 Mon Sep 17 00:00:00 2001 From: hgn Date: Tue, 9 May 2023 00:17:22 +0100 Subject: [PATCH] api --- vg_platform.h | 34 ++++++++++++++++++++++++++++++++++ vg_steam_friends.h | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+) diff --git a/vg_platform.h b/vg_platform.h index 9861204..c7e178b 100644 --- a/vg_platform.h +++ b/vg_platform.h @@ -61,6 +61,40 @@ VG_STATIC u32 vg_strncpy( const char *src, char *dst, u32 len, return 0; } +typedef struct vg_str vg_str; +struct vg_str{ + char *buffer; + u32 i, len; +}; + +VG_STATIC void vg_strnull( vg_str *str, char *buffer, u32 len ) +{ + str->buffer = buffer; + str->i = 0; + str->len = len; +} + +VG_STATIC void vg_strcat( vg_str *str, const char *append ) +{ + for( u32 i=0; str->i < str->len; i++, str->i ++ ){ + str->buffer[ str->i ] = append[i]; + + if( append[i] == '\0' ) return; + } +} + +VG_STATIC int vg_strgood( vg_str *str ) +{ + if( str->i == str->len ){ + if( str->buffer[str->i -1] == '\0' ) return 1; + else return 0; + } + else{ + str->buffer[ str->i ++ ] = '\0'; + return 1; + } +} + VG_STATIC u32 vg_strdjb2( const char *str ) { u32 hash = 5381, c; diff --git a/vg_steam_friends.h b/vg_steam_friends.h index 5815447..4bcbebb 100644 --- a/vg_steam_friends.h +++ b/vg_steam_friends.h @@ -10,6 +10,26 @@ #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, -- 2.25.1