Added debug menu
This commit is contained in:
parent
ab14a40993
commit
a01417e4c8
@ -3,14 +3,16 @@ use serde::{Deserialize, Serialize};
|
|||||||
#[derive(Debug, Serialize, Deserialize)]
|
#[derive(Debug, Serialize, Deserialize)]
|
||||||
pub struct DiscConfig {
|
pub struct DiscConfig {
|
||||||
id: usize,
|
id: usize,
|
||||||
disc: Vec<char>
|
disc: Vec<char>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Serialize, Deserialize)]
|
#[derive(Debug, Serialize, Deserialize)]
|
||||||
pub struct Config {
|
pub struct Config {
|
||||||
inner_disc: usize,
|
pub inner_disc: usize,
|
||||||
outer_disc: usize,
|
pub outer_disc: usize,
|
||||||
discs: Vec<DiscConfig>
|
pub inner_discs: Vec<usize>,
|
||||||
|
pub outer_discs: Vec<usize>,
|
||||||
|
pub discs: Vec<DiscConfig>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Config {
|
impl Config {
|
||||||
|
71
src/main.rs
71
src/main.rs
@ -1,11 +1,14 @@
|
|||||||
mod disc;
|
|
||||||
mod config;
|
mod config;
|
||||||
|
mod disc;
|
||||||
|
|
||||||
|
use crate::config::Config;
|
||||||
use crate::disc::{DecoderState, Disc};
|
use crate::disc::{DecoderState, Disc};
|
||||||
|
use macroquad::hash;
|
||||||
use macroquad::prelude::*;
|
use macroquad::prelude::*;
|
||||||
|
use macroquad::ui::root_ui;
|
||||||
|
use macroquad::ui::widgets::{Group, Window};
|
||||||
use std::f32::consts::PI;
|
use std::f32::consts::PI;
|
||||||
use std::string::ToString;
|
use std::string::ToString;
|
||||||
use crate::config::Config;
|
|
||||||
|
|
||||||
const SHADOW: Color = Color::new(0.25, 0.25, 0.25, 0.5);
|
const SHADOW: Color = Color::new(0.25, 0.25, 0.25, 0.5);
|
||||||
|
|
||||||
@ -534,6 +537,68 @@ fn input_panel(ctx: &mut Context, base: Vec2, size: Vec2) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn draw_config_menu(ctx: &mut Context, config: &Config) {
|
||||||
|
let inner_discs_combo: Vec<String> = config
|
||||||
|
.inner_discs
|
||||||
|
.iter()
|
||||||
|
.map(|ndx| ndx.to_string())
|
||||||
|
.collect();
|
||||||
|
let outer_discs_combo: Vec<String> = config
|
||||||
|
.outer_discs
|
||||||
|
.iter()
|
||||||
|
.map(|ndx| ndx.to_string())
|
||||||
|
.collect();
|
||||||
|
|
||||||
|
let window_size = Vec2::new(screen_width() * 0.10, screen_width() * 0.10);
|
||||||
|
|
||||||
|
let group_size = Vec2::new(window_size.x, window_size.y * 0.3);
|
||||||
|
|
||||||
|
Window::new(
|
||||||
|
hash!("Config"),
|
||||||
|
window_size,
|
||||||
|
Vec2::new(screen_width() * 0.15, screen_height() * 0.20),
|
||||||
|
)
|
||||||
|
.label("Device Config")
|
||||||
|
.titlebar(true)
|
||||||
|
.ui(&mut root_ui(), |ui| {
|
||||||
|
Group::new(hash!("Inner disc"), group_size).ui(ui, |ui| {
|
||||||
|
let inner_disc_ndx = ui.combo_box(
|
||||||
|
hash!("Outer disc Select"),
|
||||||
|
"Inner Disc ID",
|
||||||
|
&inner_discs_combo
|
||||||
|
.iter()
|
||||||
|
.map(|s| s.as_str())
|
||||||
|
.collect::<Vec<&str>>(),
|
||||||
|
None,
|
||||||
|
);
|
||||||
|
let inner_disc = config.get_disc_from_id(config.inner_discs[inner_disc_ndx]);
|
||||||
|
ctx.decoder_state.inner_disc.letter_map = inner_disc;
|
||||||
|
});
|
||||||
|
|
||||||
|
Group::new(hash!("Outer disc"), group_size).ui(ui, |ui| {
|
||||||
|
let outer_disc_ndx = ui.combo_box(
|
||||||
|
hash!("Outer disc select"),
|
||||||
|
"Outer Disc ID",
|
||||||
|
&outer_discs_combo
|
||||||
|
.iter()
|
||||||
|
.map(|s| s.as_str())
|
||||||
|
.collect::<Vec<&str>>(),
|
||||||
|
None,
|
||||||
|
);
|
||||||
|
let outer_disc = config.get_disc_from_id(config.outer_discs[outer_disc_ndx]);
|
||||||
|
ctx.decoder_state.outer_disc.letter_map = outer_disc;
|
||||||
|
});
|
||||||
|
|
||||||
|
Group::new(hash!("Reset"), group_size).ui(ui, |ui| {
|
||||||
|
if ui.button(Vec2::new(0.0, 0.0), "Reset") {
|
||||||
|
ctx.decoder_state.set_index(0);
|
||||||
|
ctx.input_state
|
||||||
|
.set_index(ctx.input_state.outer_disc.letter_map.len() / 4);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
#[macroquad::main(conf)]
|
#[macroquad::main(conf)]
|
||||||
async fn main() {
|
async fn main() {
|
||||||
game_init();
|
game_init();
|
||||||
@ -559,6 +624,8 @@ async fn main() {
|
|||||||
loop {
|
loop {
|
||||||
clear_background(WHITE);
|
clear_background(WHITE);
|
||||||
|
|
||||||
|
draw_config_menu(&mut context, &config);
|
||||||
|
|
||||||
draw_device(&mut context);
|
draw_device(&mut context);
|
||||||
|
|
||||||
next_frame().await;
|
next_frame().await;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user