.bin saves instead of json. it wasn't readable anyway

This commit is contained in:
Llywelwyn 2023-10-24 11:11:50 +01:00
parent d1fe86f645
commit 17bebf03a4
2 changed files with 11 additions and 10 deletions

View file

@ -15,6 +15,7 @@ serde = { version = "1.0.93", features = ["derive"]}
serde_json = "1.0.39"
toml = "0.5"
lazy_static = "1.4.0"
bincode = "1.3.3"
[dev-dependencies]
criterion = { version = "^0.5" }

View file

@ -1,6 +1,5 @@
use super::components::*;
use bracket_lib::prelude::*;
use specs::error::NoError;
use specs::prelude::*;
use specs::saveload::{
DeserializeComponents,
@ -12,11 +11,12 @@ use specs::saveload::{
use std::fs;
use std::fs::File;
use std::path::Path;
use std::convert::Infallible;
macro_rules! serialize_individually {
($ecs:expr, $ser:expr, $data:expr, $($type:ty),*) => {
$(
SerializeComponents::<NoError, SimpleMarker<SerializeMe>>::serialize(
SerializeComponents::<Infallible, SimpleMarker<SerializeMe>>::serialize(
&( $ecs.read_storage::<$type>(), ),
&$data.0,
&$data.1,
@ -61,8 +61,8 @@ pub fn save_game(ecs: &mut World) {
{
let data = (ecs.entities(), ecs.read_storage::<SimpleMarker<SerializeMe>>());
let writer = File::create("./savegame.json").unwrap();
let mut serializer = serde_json::Serializer::new(writer);
let writer = File::create("./savegame.bin").unwrap();
let mut serializer = bincode::Serializer::new(writer, bincode::options());
serialize_individually!(
ecs,
serializer,
@ -162,13 +162,13 @@ pub fn save_game(ecs: &mut World) {
}
pub fn does_save_exist() -> bool {
Path::new("./savegame.json").exists()
Path::new("./savegame.bin").exists()
}
macro_rules! deserialize_individually {
($ecs:expr, $de:expr, $data:expr, $($type:ty),*) => {
$(
DeserializeComponents::<NoError, _>::deserialize(
DeserializeComponents::<Infallible, _>::deserialize(
&mut ( &mut $ecs.write_storage::<$type>(), ),
&$data.0, // entities
&mut $data.1, // marker
@ -192,8 +192,8 @@ pub fn load_game(ecs: &mut World) {
}
}
let data = fs::read_to_string("./savegame.json").unwrap();
let mut de = serde_json::Deserializer::from_str(&data);
let data = fs::read("./savegame.bin").unwrap();
let mut de = bincode::Deserializer::with_reader(&*data, bincode::options());
{
let mut d = (
@ -329,7 +329,7 @@ pub fn load_game(ecs: &mut World) {
}
pub fn delete_save() {
if Path::new("./savegame.json").exists() {
std::fs::remove_file("./savegame.json").expect("Unable to delete file");
if Path::new("./savegame.bin").exists() {
std::fs::remove_file("./savegame.bin").expect("Unable to delete file");
}
}