Implemented parameter logic

This commit is contained in:
p11 2025-04-09 22:26:52 +02:00
parent 6e9423892d
commit 819e55ff9c

View File

@ -23,6 +23,10 @@ use rayon::prelude::*;
mod request; mod request;
use request::Request; use request::Request;
use vn_settings::{
ColorSettings, ImageSettings, LayoutSettings, Names, ObjectSettings, PlayerSettings,
TimingSettings,
};
mod dialog; mod dialog;
@ -585,9 +589,37 @@ fn handle_relative_connection(
let mut sections = Vec::new(); let mut sections = Vec::new();
for dialog_sequence in dialogs { 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 { for block in &dialog_sequence.blocks {
let mut block_content = Vec::new(); 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() { let section_html = if block.lines.is_empty() {
html! {} html! {}
} else { } else {