diff options
| author | Matthew Collins <[email protected]> | 2018-05-02 21:12:13 +0100 |
|---|---|---|
| committer | Matthew Collins <[email protected]> | 2018-05-02 21:17:00 +0100 |
| commit | 4e5a0ced33f810284b26eae661d1e1b7fafa3d42 (patch) | |
| tree | a1ab8283350aee2a3d182098f025070b2af12f83 | |
| parent | Cleanup callback handling. (diff) | |
| download | steamworks-rs-4e5a0ced33f810284b26eae661d1e1b7fafa3d42.tar.xz steamworks-rs-4e5a0ced33f810284b26eae661d1e1b7fafa3d42.zip | |
Add restart_app_if_necessary
| -rw-r--r-- | Cargo.toml | 2 | ||||
| -rw-r--r-- | src/lib.rs | 11 | ||||
| -rw-r--r-- | steamworks-sys/Cargo.toml | 2 | ||||
| -rw-r--r-- | steamworks-sys/src/lib.rs | 5 |
4 files changed, 16 insertions, 4 deletions
@@ -1,6 +1,6 @@ [package] name = "steamworks" -version = "0.3.0" +version = "0.3.1" authors = ["Thinkofname"] description = "Provides rust friendly bindings to the steamworks sdk" license = "MIT / Apache-2.0" @@ -72,6 +72,17 @@ unsafe impl <Manager: Send + Sync> Sync for Inner<Manager> {} unsafe impl <Manager: Send + Sync> Send for Client<Manager> {} unsafe impl <Manager: Send + Sync> Sync for Client<Manager> {} +/// Returns true if the app wasn't launched through steam and +/// begins relaunching it, the app should exit as soon as possible. +/// +/// Returns false if the app was either launched through steam +/// or has a `steam_appid.txt` +pub fn restart_app_if_necessary(app_id: AppId) -> bool { + unsafe { + sys::SteamAPI_RestartAppIfNecessary(app_id.0) != 0 + } +} + impl Client<ClientManager> { /// Attempts to initialize the steamworks api and returns /// a client to access the rest of the api. diff --git a/steamworks-sys/Cargo.toml b/steamworks-sys/Cargo.toml index 2d89333..a94ba83 100644 --- a/steamworks-sys/Cargo.toml +++ b/steamworks-sys/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "steamworks-sys" -version = "0.2.1" +version = "0.2.2" authors = ["Thinkofname"] build = "build.rs" description = "Provides raw bindings to the steamworks sdk" diff --git a/steamworks-sys/src/lib.rs b/steamworks-sys/src/lib.rs index b796f77..5fbb565 100644 --- a/steamworks-sys/src/lib.rs +++ b/steamworks-sys/src/lib.rs @@ -241,7 +241,7 @@ pub struct CallbackData { pub run: unsafe extern "C" fn(*mut c_void, *mut c_void, *mut c_void), pub run_extra: unsafe extern "C" fn(*mut c_void, *mut c_void, *mut c_void, bool, SteamAPICall), pub dealloc: unsafe extern "C" fn(*mut c_void, *mut c_void), -} +} extern "C" { // Helpers from lib.cpp @@ -258,7 +258,7 @@ extern "C" { pub fn steam_rust_get_server_apps() -> *mut ISteamApps; pub fn steam_rust_game_server_init(ip: u32, steam_port: u16, game_port: u16, query_port: u16, server_mode: ServerMode, version: *const c_char) -> c_int; - + // pub fn SteamAPI_Init() -> u8; @@ -268,6 +268,7 @@ extern "C" { pub fn SteamAPI_UnregisterCallback(pCallback: *mut c_void); pub fn SteamAPI_RegisterCallResult(pCallback: *mut c_void, api_call: SteamAPICall); pub fn SteamAPI_UnregisterCallResult(pCallback: *mut c_void, api_call: SteamAPICall); + pub fn SteamAPI_RestartAppIfNecessary(app_id: u32) -> u8; pub fn SteamGameServer_Shutdown(); pub fn SteamGameServer_RunCallbacks(); |