From fe46359e4721ab1774365e30e8759d924879098a Mon Sep 17 00:00:00 2001 From: CosminPerRam Date: Sat, 18 Feb 2023 19:00:54 +0200 Subject: [PATCH] Games: Operation Harsh Doorstop support. --- CHANGELOG.md | 1 + GAMES.md | 1 + examples/master_querant.rs | 3 ++- src/games/mod.rs | 2 ++ src/games/ohd.rs | 12 ++++++++++++ src/protocols/valve/types.rs | 2 ++ 6 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 src/games/ohd.rs diff --git a/CHANGELOG.md b/CHANGELOG.md index 787bdf2..edf6508 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ Games: - [Ballistic Overkill](https://store.steampowered.com/app/296300/Ballistic_Overkill/) support. - [BrainBread 2](https://store.steampowered.com/app/346330/BrainBread_2/) support. - [Avorion](https://store.steampowered.com/app/445220/Avorion/) support. +- [Operation: Harsh Doorstop](https://store.steampowered.com/app/736590/Operation_Harsh_Doorstop/) support. ### Breaking: Nothing. diff --git a/GAMES.md b/GAMES.md index 2a01210..2e80457 100644 --- a/GAMES.md +++ b/GAMES.md @@ -43,6 +43,7 @@ Beware of the `Notes` column, as it contains information about query port offset | Ballistic Overkill | BO | Valve Protocol | Query port is 27016. | | BrainBread 2 | BB2 | Valve Protocol | | | Avorion | AVORION | Valve Protocol | Query port is 27020. | +| Operation: Harsh Doorstop | OHD | Valve Protocol | Query port is 27005. | ## Planned to add support: _ diff --git a/examples/master_querant.rs b/examples/master_querant.rs index fa2020b..1c8581d 100644 --- a/examples/master_querant.rs +++ b/examples/master_querant.rs @@ -1,6 +1,6 @@ use std::env; -use gamedig::{aliens, aoc, arma2oa, ase, asrd, avorion, bat1944, bb2, bm, bo, ccure, cosu, cs, cscz, csgo, css, dod, dods, doi, dst, GDResult, gm, hl2dm, hldms, ins, insmic, inss, l4d, l4d2, mc, onset, pz, ror2, rust, sc, sdtd, tf, tf2, tfc, ts, unturned}; +use gamedig::{aliens, aoc, arma2oa, ase, asrd, avorion, bat1944, bb2, bm, bo, ccure, cosu, cs, cscz, csgo, css, dod, dods, doi, dst, GDResult, gm, hl2dm, hldms, ins, insmic, inss, l4d, l4d2, mc, ohd, onset, pz, ror2, rust, sc, sdtd, tf, tf2, tfc, ts, unturned}; use gamedig::protocols::minecraft::LegacyGroup; use gamedig::protocols::valve; use gamedig::protocols::valve::App; @@ -81,6 +81,7 @@ fn main() -> GDResult<()> { "bo" => println!("{:#?}", bo::query(ip, port)?), "bb2" => println!("{:#?}", bb2::query(ip, port)?), "avorion" => println!("{:#?}", avorion::query(ip, port)?), + "ohd" => println!("{:#?}", ohd::query(ip, port)?), _ => panic!("Undefined game: {}", args[1]) }; diff --git a/src/games/mod.rs b/src/games/mod.rs index 056cd42..89cf589 100644 --- a/src/games/mod.rs +++ b/src/games/mod.rs @@ -81,3 +81,5 @@ pub mod bo; pub mod bb2; /// Avorion pub mod avorion; +/// Operation: Harsh Doorstop +pub mod ohd; diff --git a/src/games/ohd.rs b/src/games/ohd.rs new file mode 100644 index 0000000..c52c40b --- /dev/null +++ b/src/games/ohd.rs @@ -0,0 +1,12 @@ +use crate::GDResult; +use crate::protocols::valve; +use crate::protocols::valve::{game, SteamID}; + +pub fn query(address: &str, port: Option) -> GDResult { + let valve_response = valve::query(address, match port { + None => 27005, + Some(port) => port + }, SteamID::OHD.as_app(), None, None)?; + + Ok(game::Response::new_from_valve_response(valve_response)) +} diff --git a/src/protocols/valve/types.rs b/src/protocols/valve/types.rs index 42d50d6..1074b45 100644 --- a/src/protocols/valve/types.rs +++ b/src/protocols/valve/types.rs @@ -215,6 +215,8 @@ pub enum SteamID { ASRD = 563560, /// Risk of Rain 2 ROR2 = 632360, + /// Operation: Harsh Doorstop + OHD = 950900, // this is the id for the dedicated server, for the game its 736590 /// Onset ONSET = 1105810, }