rosu_memory_lib/reader/beatmap/stable/
mod.rs1pub mod file;
2pub mod memory;
3pub mod offset;
4
5use crate::reader::beatmap::stable::offset::*;
6use crate::reader::common::stable::memory::check_game_state;
7use crate::reader::common::GameState;
8use crate::reader::structs::State;
9use crate::Error;
10use rosu_mem::process::{Process, ProcessTraits};
11
12pub(crate) fn beatmap_addr(p: &Process, state: &mut State) -> Result<i32, Error> {
13 match check_game_state(p, state, GameState::SongSelect)?
14 || check_game_state(p, state, GameState::Editor)?
15 || check_game_state(p, state, GameState::Playing)?
16 || check_game_state(p, state, GameState::ResultScreen)?
17 {
18 true => Ok(p.read_i32(p.read_i32(state.addresses.base - BEATMAP_OFFSET.ptr)?)?),
19 false => Err(Error::NotAvailable("Not in song select".to_string())),
20 }
21}