From dccdf4a4ecca0e0029b58f2d3167bc2e7aad62f1 Mon Sep 17 00:00:00 2001 From: core Date: Sun, 7 Jan 2024 00:50:40 -0500 Subject: [PATCH] savefile decoder --- Cargo.lock | 7 +++++++ Cargo.toml | 3 ++- savefile_decoder/Cargo.toml | 9 +++++++++ savefile_decoder/src/main.rs | 10 ++++++++++ starkingdoms-common/src/lib.rs | 2 +- 5 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 savefile_decoder/Cargo.toml create mode 100644 savefile_decoder/src/main.rs diff --git a/Cargo.lock b/Cargo.lock index 2250851028214569b03ccb3759b972617a52fec7..4b819a1fdb5c8c52023238fc95419f63b6f9018b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3336,6 +3336,13 @@ dependencies = [ "bytemuck", ] +[[package]] +name = "savefile_decoder" +version = "0.1.0" +dependencies = [ + "starkingdoms-common", +] + [[package]] name = "scoped-futures" version = "0.1.3" diff --git a/Cargo.toml b/Cargo.toml index 63ca36375abfdfe56d968cb5c4fbc0d7082ff77e..8c0120b642a5889422b1aba4dd3525bae927abfb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,7 +2,8 @@ members = [ "server", "starkingdoms-backplane", - "starkingdoms-common" + "starkingdoms-common", + "savefile_decoder" ] resolver = "2" diff --git a/savefile_decoder/Cargo.toml b/savefile_decoder/Cargo.toml new file mode 100644 index 0000000000000000000000000000000000000000..c4acba4d26008f1850cccb83a09f73e7f2c0387d --- /dev/null +++ b/savefile_decoder/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "savefile_decoder" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +starkingdoms-common = { version = "0.1", path = "../starkingdoms-common" } \ No newline at end of file diff --git a/savefile_decoder/src/main.rs b/savefile_decoder/src/main.rs new file mode 100644 index 0000000000000000000000000000000000000000..1d46608b23b6bc1812c329c9eeb81eea6c00f26c --- /dev/null +++ b/savefile_decoder/src/main.rs @@ -0,0 +1,10 @@ +use std::fs; + +use starkingdoms_common::unpack_savefile; + +fn main() { + let save = std::env::args().next(); + let key = fs::read_to_string("/etc/starkingdoms/app_key").unwrap(); + let save_data = unpack_savefile(&key, save).unwrap(); + println!("{:#?}", save_data); +} diff --git a/starkingdoms-common/src/lib.rs b/starkingdoms-common/src/lib.rs index d2116cd73da93c1774497df0b2ec1ed24ab458fa..55340eb9930bf8d117bb8f7220e7f8c056d73ea5 100644 --- a/starkingdoms-common/src/lib.rs +++ b/starkingdoms-common/src/lib.rs @@ -20,7 +20,7 @@ use serde::{Deserialize, Serialize}; use sha2::Sha256; use std::error::Error; -#[derive(Serialize, Deserialize)] +#[derive(Serialize, Deserialize, Debug)] pub struct SaveData { // ---------------------------------------------------------------------- // HEY YOU