From 819e55ff9ca6c88dd8bb933b2a10708706a4b4b9 Mon Sep 17 00:00:00 2001 From: p11 Date: Wed, 9 Apr 2025 22:26:52 +0200 Subject: [PATCH] Implemented parameter logic --- src/main.rs | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src/main.rs b/src/main.rs index 7ad3dd4..452ab7b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -23,6 +23,10 @@ use rayon::prelude::*; mod request; use request::Request; +use vn_settings::{ + ColorSettings, ImageSettings, LayoutSettings, Names, ObjectSettings, PlayerSettings, + TimingSettings, +}; mod dialog; @@ -585,9 +589,37 @@ fn handle_relative_connection( let mut sections = Vec::new(); for dialog_sequence in dialogs { + let mut player_settings = PlayerSettings { + colors: ColorSettings::common(), + timing: TimingSettings::common(), + images: ImageSettings::common(), + objects: ObjectSettings::common(), + layout: LayoutSettings::common(), + names: Names::new(), + }; + + let changes = &dialog_sequence.changes; + let mut states = HashMap::new(); + for parameter in changes.keys() { + states.insert(parameter.clone(), 0); + } + for block in &dialog_sequence.blocks { let mut block_content = Vec::new(); + for parameter in block + .lines + .iter() + .flat_map(|l| &l.actions) + .chain(&block.final_actions) + { + if let Some(state) = states.get_mut(parameter) { + let change = &dialog_sequence.changes[parameter][*state]; + player_settings.change(change); + *state += 1; + } + } + let section_html = if block.lines.is_empty() { html! {} } else {