use rosu_mem::{
error::ProcessError,
process::{Process, ProcessTraits},
signature::Signature,
};
use std::str::FromStr;
static EXCLUDE_WORDS: [&str; 2] = ["umu-run", "waitforexitandrun"];
fn main() -> Result<(), ProcessError> {
let osu_process = Process::initialize("osu!.exe", &EXCLUDE_WORDS)?;
println!("Found a osu! process");
let base_signature = Signature::from_str("F8 01 74 04 83 65").unwrap();
let status_signature = Signature::from_str("48 83 F8 04 73 1E").unwrap();
let _base: i32 = osu_process.read_signature(&base_signature)?;
let status: i32 = osu_process.read_signature(&status_signature)?;
println!("Found all required signatures!");
let status_ptr = osu_process.read_i32(status - 0x4)?;
let osu_state_status = osu_process.read_u32(status_ptr)?;
println!("Current osu! game status: {osu_state_status}");
Ok(())
}