📦 Game Update 13963 (2)

This commit is contained in:
a2x
2023-10-20 15:23:43 +10:00
parent 415cbf1ec5
commit 74a0693f53
100 changed files with 845 additions and 630 deletions

View File

@@ -1,25 +1,30 @@
use std::{io::{Result, Write}, collections::BTreeMap};
use std::{
collections::BTreeMap,
io::{Result, Write},
};
use serde::Serialize;
use super::FileBuilder;
/// Represents an offset value in JSON format.
#[derive(Debug, PartialEq, Default, Serialize)]
struct JsonOffsetValue {
value: usize,
comment: Option<String>,
}
/// Represents a module in JSON format.
#[derive(Debug, PartialEq, Default, Serialize)]
struct JsonMod {
struct JsonModule {
data: BTreeMap<String, JsonOffsetValue>,
comment: Option<String>,
}
/// Represents a JSON file builder.
#[derive(Debug, PartialEq, Default)]
pub struct JsonFileBuilder {
data: BTreeMap<String, JsonMod>,
data: BTreeMap<String, JsonModule>,
current_namespace: String,
}
@@ -32,7 +37,12 @@ impl FileBuilder for JsonFileBuilder {
Ok(())
}
fn write_namespace(&mut self, _output: &mut dyn Write, name: &str, comment: Option<&str>) -> Result<()> {
fn write_namespace(
&mut self,
_output: &mut dyn Write,
name: &str,
comment: Option<&str>,
) -> Result<()> {
self.current_namespace = name.to_string();
self.data.entry(name.to_string()).or_default().comment = comment.map(str::to_string);
@@ -46,11 +56,17 @@ impl FileBuilder for JsonFileBuilder {
value: usize,
comment: Option<&str>,
) -> Result<()> {
self.data.entry(self.current_namespace.clone()).or_default().data
.insert(name.to_string(), JsonOffsetValue {
value: value,
comment: comment.map(str::to_string)
});
self.data
.entry(self.current_namespace.clone())
.or_default()
.data
.insert(
name.to_string(),
JsonOffsetValue {
value: value,
comment: comment.map(str::to_string),
},
);
Ok(())
}