fix(panel item): use u32 instead of bool for button state

This commit is contained in:
Nova
2022-09-05 12:32:43 -04:00
parent 2ea2ec0b07
commit cd10fda29e

View File

@@ -11,7 +11,7 @@ use crate::{
spatial::Spatial,
},
};
use anyhow::{anyhow, Result};
use anyhow::{anyhow, bail, Result};
use glam::Mat4;
use lazy_static::lazy_static;
use libstardustxr::{flex::flexbuffer_from_vector_arguments, flex_to_vec2};
@@ -236,15 +236,17 @@ impl PanelItem {
if *panel_item.seat_data.pointer_active.lock() {
let flex_vec = flexbuffers::Reader::get_root(data)?.get_vector()?;
let button = flex_vec.index(0)?.get_u64()? as u32;
let active = flex_vec.index(1)?.get_bool()?;
let state = flex_vec.index(1)?.get_u64()? as u32;
pointer.button(
0,
0,
button,
if active {
ButtonState::Pressed
} else {
ButtonState::Released
match state {
0 => ButtonState::Released,
1 => ButtonState::Pressed,
_ => {
bail!("Button state is out of bounds")
}
},
);
pointer.frame();