use crate::api::dungeons::FixedRoomId;
use crate::api::overlay::OverlayLoadLease;
use crate::ffi;
pub trait DungeonFixedRoomIdExt {
fn is_boss_fight(&self, _ov29: &OverlayLoadLease<29>) -> bool;
fn are_orbs_allowed(&self, _ov29: &OverlayLoadLease<29>) -> bool;
fn are_tile_jumps_allowed(&self, _ov29: &OverlayLoadLease<29>) -> bool;
fn are_trawl_orbs_allowed(&self, _ov29: &OverlayLoadLease<29>) -> bool;
fn are_late_game_traps_enabled(&self, _ov29: &OverlayLoadLease<29>) -> bool;
fn are_moves_enabled(&self, _ov29: &OverlayLoadLease<29>) -> bool;
fn is_room_illuminated(&self, _ov29: &OverlayLoadLease<29>) -> bool;
}
impl DungeonFixedRoomIdExt for FixedRoomId {
fn is_boss_fight(&self, _ov29: &OverlayLoadLease<29>) -> bool {
unsafe { ffi::IsBossFight(*self) > 0 }
}
fn are_orbs_allowed(&self, _ov29: &OverlayLoadLease<29>) -> bool {
unsafe { ffi::AreOrbsAllowed(*self) > 0 }
}
fn are_tile_jumps_allowed(&self, _ov29: &OverlayLoadLease<29>) -> bool {
unsafe { ffi::AreTileJumpsAllowed(*self) > 0 }
}
fn are_trawl_orbs_allowed(&self, _ov29: &OverlayLoadLease<29>) -> bool {
unsafe { ffi::AreTrawlOrbsAllowed(*self) > 0 }
}
fn are_late_game_traps_enabled(&self, _ov29: &OverlayLoadLease<29>) -> bool {
unsafe { ffi::AreLateGameTrapsEnabled(*self) > 0 }
}
fn are_moves_enabled(&self, _ov29: &OverlayLoadLease<29>) -> bool {
unsafe { ffi::AreMovesEnabled(*self) > 0 }
}
fn is_room_illuminated(&self, _ov29: &OverlayLoadLease<29>) -> bool {
unsafe { ffi::IsRoomIlluminated(*self) > 0 }
}
}