Updated how player settings are processed
This commit is contained in:
parent
b89b1c3767
commit
8b2d44d574
30
src/main.rs
30
src/main.rs
@ -19,6 +19,7 @@ use data_stream::{
|
|||||||
from_stream, to_stream,
|
from_stream, to_stream,
|
||||||
};
|
};
|
||||||
use dialog::parse_map;
|
use dialog::parse_map;
|
||||||
|
use dialogi::DialogParameter;
|
||||||
use header_config::parse_config;
|
use header_config::parse_config;
|
||||||
use maud::html;
|
use maud::html;
|
||||||
use percent_encoding::percent_decode_str;
|
use percent_encoding::percent_decode_str;
|
||||||
@ -28,7 +29,7 @@ use threadpool::ThreadPool;
|
|||||||
mod request;
|
mod request;
|
||||||
use request::Request;
|
use request::Request;
|
||||||
use vn_settings::{
|
use vn_settings::{
|
||||||
ColorSettings, ImageSettings, LayoutSettings, Names, ObjectSettings, PlayerSettings,
|
ColorSettings, ImageSettings, LayoutSettings, Names, ObjectSettings, Parameter, PlayerSettings,
|
||||||
SettingsContext, TimingSettings,
|
SettingsContext, TimingSettings,
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -604,6 +605,15 @@ fn handle_relative_connection(
|
|||||||
.unwrap_or_default();
|
.unwrap_or_default();
|
||||||
|
|
||||||
if let Some(mut config_map) = config_map {
|
if let Some(mut config_map) = config_map {
|
||||||
|
let mut player_settings = PlayerSettings {
|
||||||
|
colors: ColorSettings::common(),
|
||||||
|
timing: TimingSettings::common(),
|
||||||
|
images: ImageSettings::common(),
|
||||||
|
objects: ObjectSettings::common(),
|
||||||
|
layout: LayoutSettings::common(),
|
||||||
|
names: Names::new(),
|
||||||
|
};
|
||||||
|
|
||||||
let mut layers = HashMap::new();
|
let mut layers = HashMap::new();
|
||||||
|
|
||||||
let keys: Vec<_> = config_map.keys().cloned().collect();
|
let keys: Vec<_> = config_map.keys().cloned().collect();
|
||||||
@ -629,6 +639,13 @@ fn handle_relative_connection(
|
|||||||
layers,
|
layers,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
for (key, value) in config_map {
|
||||||
|
if let Some(parameter) = Parameter::create(&key, &mut settings_context) {
|
||||||
|
let setter = parameter.value_setter(&value, &settings_context);
|
||||||
|
player_settings.set_character_default(setter);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
let Ok(dialogs) = parse_map(file_paths.pk, &mut settings_context) else {
|
let Ok(dialogs) = parse_map(file_paths.pk, &mut settings_context) else {
|
||||||
fail(stream);
|
fail(stream);
|
||||||
return;
|
return;
|
||||||
@ -637,15 +654,6 @@ 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 changes = &dialog_sequence.changes;
|
||||||
let mut states = HashMap::new();
|
let mut states = HashMap::new();
|
||||||
for parameter in changes.keys() {
|
for parameter in changes.keys() {
|
||||||
@ -693,6 +701,8 @@ fn handle_relative_connection(
|
|||||||
|
|
||||||
sections.push(section_html);
|
sections.push(section_html);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
player_settings.reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
let html = html! {
|
let html = html! {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user