From d943ba194b3cfab18354e96f7be2c1e434d6c073 Mon Sep 17 00:00:00 2001 From: LLLL Colonq Date: Sun, 26 Apr 2026 22:56:52 -0400 Subject: Update --- crates/renderer/src/main.rs | 43 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 41 insertions(+), 2 deletions(-) (limited to 'crates/renderer/src/main.rs') diff --git a/crates/renderer/src/main.rs b/crates/renderer/src/main.rs index ae8cc03..b71a836 100644 --- a/crates/renderer/src/main.rs +++ b/crates/renderer/src/main.rs @@ -1,3 +1,6 @@ +#![feature(unix_socket_ancillary_data)] +#![feature(str_from_utf16_endian)] +#![feature(try_blocks)] #![allow(dead_code, unused_variables)] mod assets; mod terminal; @@ -5,9 +8,12 @@ mod background; mod toggle; mod overlay; mod input; +mod ffi; +mod texture_server; use teleia::*; -use clap::{command, Command}; +use clap::{command, Command, Arg}; +use std::io::Write as _; pub fn main() -> Erm<()> { let matches = command!() @@ -22,6 +28,16 @@ pub fn main() -> Erm<()> { Command::new("model-terminal") .about("Run the LCOLONQ model renderer in a terminal") ) + .subcommand( + Command::new("validate-card") + .arg(Arg::new("path")) + .about("Validate the TCG card at the given path.") + ) + .subcommand( + Command::new("repair-card") + .arg(Arg::new("path")) + .about("Repair the TCG card at the given path.") + ) .get_matches(); match matches.subcommand() { Some(("overlay", _cm)) => { @@ -29,8 +45,10 @@ pub fn main() -> Erm<()> { overlay::Overlays::new(ctx, vec![ Box::new(overlay::automata::Overlay::new(ctx)), Box::new(overlay::shader::Overlay::new(ctx)), - Box::new(overlay::drawing::Overlay::new(ctx)), Box::new(overlay::tcg::Overlay::new(ctx)), + Box::new(overlay::clippy::Overlay::new(ctx)), + Box::new(overlay::combo::Overlay::new(ctx)), + Box::new(overlay::drawing::Overlay::new(ctx)), // Box::new(overlay::model::Overlay::new(ctx)), // Box::new(overlay::loopback::Overlay::new(ctx)), ]) @@ -39,6 +57,27 @@ pub fn main() -> Erm<()> { Some(("model-terminal", _cm)) => { teleia::run("LCOLONQ", 1920, 1080, teleia::Options::HIDDEN, overlay::model::Terminal::new)?; }, + Some(("validate-card", cm)) => { + if let Some(path) = cm.get_one::("path") { + if overlay::tcg::validate_card(&std::fs::read(path)?)? { + println!("signatures match!"); + std::process::exit(0); + } else { + println!("signatures do not match"); + std::process::exit(1); + } + } else { + eprintln!("no path specified"); + } + }, + Some(("repair-card", cm)) => { + if let Some(path) = cm.get_one::("path") { + let res = overlay::tcg::repair_card(&std::fs::read(path)?)?; + std::io::stdout().write_all(&res)?; + } else { + eprintln!("no path specified"); + } + }, _ => unreachable!("no subcommand"), } Ok(()) -- cgit v1.2.3