aboutsummaryrefslogtreecommitdiff
path: root/steamworks-sys/src
diff options
context:
space:
mode:
authorMatthew Collins <[email protected]>2018-05-07 01:02:44 +0100
committerMatthew Collins <[email protected]>2018-05-07 01:02:44 +0100
commit63f96e3eb579cd53b4a7bee84ef173add5f888e8 (patch)
tree8badd7acdc85a70f141f3750bbf047c586cffd44 /steamworks-sys/src
parentFix building with older steam sdks (diff)
downloadsteamworks-rs-63f96e3eb579cd53b4a7bee84ef173add5f888e8.tar.xz
steamworks-rs-63f96e3eb579cd53b4a7bee84ef173add5f888e8.zip
Steam networking support + other improvements
Diffstat (limited to 'steamworks-sys/src')
-rw-r--r--steamworks-sys/src/lib.cpp25
-rw-r--r--steamworks-sys/src/lib.rs24
2 files changed, 48 insertions, 1 deletions
diff --git a/steamworks-sys/src/lib.cpp b/steamworks-sys/src/lib.cpp
index 38701da..655eaf4 100644
--- a/steamworks-sys/src/lib.cpp
+++ b/steamworks-sys/src/lib.cpp
@@ -52,8 +52,33 @@ extern "C" {
return SteamGameServer_Init(ip, steam_port, game_port, query_port, server_mode, version);
}
+ int steam_rust_is_steam_id_valid(uint64_t steam_id) {
+ CSteamID id = CSteamID();
+ id.SetFromUint64(steam_id);
+ return id.IsValid();
+ }
+
+ int steam_rust_is_game_id_valid(uint64_t game_id) {
+ CGameID id = CGameID();
+ id.Set(game_id);
+ return id.IsValid();
+ }
+
+ uint32_t steam_rust_get_game_id_mod(uint64_t game_id) {
+ CGameID id = CGameID();
+ id.Set(game_id);
+ return id.ModID();
+ }
+
+ uint32_t steam_rust_get_game_id_app(uint64_t game_id) {
+ CGameID id = CGameID();
+ id.Set(game_id);
+ return id.AppID();
+ }
+
ISteamClient* steam_rust_get_client() { return SteamClient(); }
ISteamMatchmaking* steam_rust_get_matchmaking() { return SteamMatchmaking(); }
+ ISteamNetworking* steam_rust_get_networking() { return SteamNetworking(); }
ISteamUtils* steam_rust_get_utils() { return SteamUtils(); }
ISteamApps* steam_rust_get_apps() { return SteamApps(); }
ISteamFriends* steam_rust_get_friends() { return SteamFriends(); }
diff --git a/steamworks-sys/src/lib.rs b/steamworks-sys/src/lib.rs
index 7d6ebae..a89a14d 100644
--- a/steamworks-sys/src/lib.rs
+++ b/steamworks-sys/src/lib.rs
@@ -26,6 +26,8 @@ pub struct ISteamMatchmaking(c_void);
pub struct ISteamUser(c_void);
#[repr(C)]
pub struct ISteamGameServer(c_void);
+#[repr(C)]
+pub struct ISteamNetworking(c_void);
pub type HSteamPipe = i32;
pub type AppId = u32;
@@ -53,8 +55,13 @@ extern "C" {
pub fn steam_rust_get_user() -> *mut ISteamUser;
pub fn steam_rust_get_server() -> *mut ISteamGameServer;
pub fn steam_rust_get_server_apps() -> *mut ISteamApps;
+ pub fn steam_rust_get_networking() -> *mut ISteamNetworking;
pub fn steam_rust_game_server_init(ip: u32, steam_port: u16, game_port: u16, query_port: u16, server_mode: EServerMode, version: *const c_char) -> c_int;
+ pub fn steam_rust_is_steam_id_valid(id: u64) -> c_int;
+ pub fn steam_rust_is_game_id_valid(id: u64) -> c_int;
+ pub fn steam_rust_get_game_id_mod(id: u64) -> u32;
+ pub fn steam_rust_get_game_id_app(id: u64) -> u32;
//
@@ -76,8 +83,10 @@ extern "C" {
pub fn SteamAPI_ISteamUtils_GetAppID(instance: *mut ISteamUtils) -> u32;
pub fn SteamAPI_ISteamUtils_GetSteamUILanguage(instance: *mut ISteamUtils) -> *const c_char;
- pub fn SteamAPI_ISteamUtils_IsAPICallCompleted(instance: *mut ISteamUtils, api_call: SteamAPICall, failed: *mut bool) -> bool;
+ pub fn SteamAPI_ISteamUtils_IsAPICallCompleted(instance: *mut ISteamUtils, api_call: SteamAPICall, failed: *mut bool) -> u8;
pub fn SteamAPI_ISteamUtils_SetOverlayNotificationPosition(instance: *mut ISteamUtils, position: ENotificationPosition);
+ pub fn SteamAPI_ISteamUtils_GetImageSize(instance: *mut ISteamUtils, image: c_int, width: *mut u32, height: *mut u32) -> u8;
+ pub fn SteamAPI_ISteamUtils_GetImageRGBA(instance: *mut ISteamUtils, image: c_int, dest: *mut u8, dest_size: c_int) -> u8;
pub fn SteamAPI_ISteamApps_BIsAppInstalled(instance: *mut ISteamApps, app_id: AppId) -> u8;
pub fn SteamAPI_ISteamApps_BIsDlcInstalled(instance: *mut ISteamApps, app_id: AppId) -> u8;
@@ -101,12 +110,25 @@ extern "C" {
pub fn SteamAPI_ISteamFriends_RequestUserInformation(instance: *mut ISteamFriends, user_id: u64, name_only: u8) -> u8;
pub fn SteamAPI_ISteamFriends_ActivateGameOverlayToWebPage(instance: *mut ISteamFriends, url: *const c_char);
pub fn SteamAPI_ISteamFriends_GetPersonaName(instance: *mut ISteamFriends) -> *const c_char;
+ pub fn SteamAPI_ISteamFriends_ActivateGameOverlayInviteDialog(instance: *mut ISteamFriends, lobby: u64);
+ pub fn SteamAPI_ISteamFriends_GetSmallFriendAvatar(instance: *mut ISteamFriends, friend: u64) -> c_int;
+ pub fn SteamAPI_ISteamFriends_GetMediumFriendAvatar(instance: *mut ISteamFriends, friend: u64) -> c_int;
+ pub fn SteamAPI_ISteamFriends_GetFriendGamePlayed(instance: *mut ISteamFriends, friend: u64, game_info: *mut FriendGameInfo_t) -> u8;
pub fn SteamAPI_ISteamMatchmaking_CreateLobby(instance: *mut ISteamMatchmaking, lobby_ty: ELobbyType, max_members: c_int) -> SteamAPICall;
pub fn SteamAPI_ISteamMatchmaking_RequestLobbyList(instance: *mut ISteamMatchmaking) -> SteamAPICall;
pub fn SteamAPI_ISteamMatchmaking_GetLobbyByIndex(instance: *mut ISteamMatchmaking, lobby: c_int) -> u64;
pub fn SteamAPI_ISteamMatchmaking_LeaveLobby(instance: *mut ISteamMatchmaking, lobby: u64);
pub fn SteamAPI_ISteamMatchmaking_JoinLobby(instance: *mut ISteamMatchmaking, lobby: u64) -> SteamAPICall;
+ pub fn SteamAPI_ISteamMatchmaking_GetLobbyOwner(instance: *mut ISteamMatchmaking, lobby: u64) -> u64;
+ pub fn SteamAPI_ISteamMatchmaking_GetNumLobbyMembers(instance: *mut ISteamMatchmaking, lobby: u64) -> c_int;
+ pub fn SteamAPI_ISteamMatchmaking_GetLobbyMemberByIndex(instance: *mut ISteamMatchmaking, lobby: u64, member: c_int) -> u64;
+
+ pub fn SteamAPI_ISteamNetworking_AcceptP2PSessionWithUser(instance: *mut ISteamNetworking, remote: u64) -> u8;
+ pub fn SteamAPI_ISteamNetworking_CloseP2PSessionWithUser(instance: *mut ISteamNetworking, remote: u64) -> u8;
+ pub fn SteamAPI_ISteamNetworking_SendP2PPacket(instance: *mut ISteamNetworking, remote: u64, data: *const c_void, data_len: u32, send_type: EP2PSend, channel: c_int) -> u8;
+ pub fn SteamAPI_ISteamNetworking_IsP2PPacketAvailable(instance: *mut ISteamNetworking, msg_size: *mut u32, channel: c_int) -> u8;
+ pub fn SteamAPI_ISteamNetworking_ReadP2PPacket(instance: *mut ISteamNetworking, data: *mut c_void, data_len: u32, msg_size: *mut u32, remote: *mut u64, channel: c_int) -> u8;
pub fn SteamAPI_ISteamUser_GetSteamID(instance: *mut ISteamUser) -> u64;
pub fn SteamAPI_ISteamUser_GetAuthSessionTicket(instance: *mut ISteamUser, ticket: *mut c_void, max_ticket: c_int, ticket_size: *mut u32) -> HAuthTicket;