object attribute for all object modes

This commit is contained in:
Corwin Kuiper 2021-05-29 15:20:54 +01:00
parent 300aafd665
commit 06210591e9

View file

@ -9,7 +9,7 @@ pub struct ObjectControl {}
#[non_exhaustive] #[non_exhaustive]
pub struct ObjectStandard { pub struct ObjectStandard {
attributes: ObjectAttributeStandard, attributes: ObjectAttribute,
id: usize, id: usize,
} }
@ -45,12 +45,12 @@ impl ObjectStandard {
} }
} }
pub struct ObjectAttributeStandard { pub struct ObjectAttribute {
low: u32, low: u32,
high: u32, high: u32,
} }
impl ObjectAttributeStandard { impl ObjectAttribute {
unsafe fn commit(&self, index: usize) { unsafe fn commit(&self, index: usize) {
OBJECT_MEMORY_STANDARD.set(index * 2, self.low); OBJECT_MEMORY_STANDARD.set(index * 2, self.low);
OBJECT_MEMORY_STANDARD.set(index * 2 + 1, self.high); OBJECT_MEMORY_STANDARD.set(index * 2 + 1, self.high);
@ -98,9 +98,9 @@ impl ObjectAttributeStandard {
} }
} }
impl ObjectAttributeStandard { impl ObjectAttribute {
fn new() -> Self { fn new() -> Self {
ObjectAttributeStandard { low: 0, high: 0 } ObjectAttribute { low: 0, high: 0 }
} }
} }
@ -112,7 +112,7 @@ impl ObjectControl {
/// # Safety /// # Safety
/// Temporary, do not call if you currently hold an object /// Temporary, do not call if you currently hold an object
pub unsafe fn clear_objects(&mut self) { pub unsafe fn clear_objects(&mut self) {
let mut o = ObjectAttributeStandard::new(); let mut o = ObjectAttribute::new();
o.set_mode(Mode::Hidden); o.set_mode(Mode::Hidden);
for index in 0..128 { for index in 0..128 {
o.commit(index); o.commit(index);
@ -136,7 +136,7 @@ impl ObjectControl {
pub unsafe fn get_object(&self, id: usize) -> ObjectStandard { pub unsafe fn get_object(&self, id: usize) -> ObjectStandard {
assert!(id < 128, "object id must be less than 128"); assert!(id < 128, "object id must be less than 128");
ObjectStandard { ObjectStandard {
attributes: ObjectAttributeStandard::new(), attributes: ObjectAttribute::new(),
id, id,
} }
} }