Fix bin_comp and factor out Patch struct to base lib.
This commit is contained in:
parent
ca1c347386
commit
476f01fad3
5 changed files with 91 additions and 35 deletions
|
@ -6,4 +6,4 @@ edition = "2021"
|
|||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
||||
md5 = "0.7.0"
|
||||
serde = { version = 1.0, features = ["derive"] }
|
||||
|
|
42
enemize/src/lib.rs
Normal file
42
enemize/src/lib.rs
Normal file
|
@ -0,0 +1,42 @@
|
|||
use std::io::Read;
|
||||
use std::path::{Path, PathBuf};
|
||||
|
||||
use serde::Serialize;
|
||||
|
||||
pub mod rom;
|
||||
|
||||
#[derive(Serialize)]
|
||||
pub struct Patch {
|
||||
pub address: usize,
|
||||
pub patch_data: Vec<u8>,
|
||||
}
|
||||
|
||||
#[derive(Serialize)]
|
||||
pub struct PatchSet {
|
||||
filename: PathBuf,
|
||||
patches: Vec<Patch>
|
||||
}
|
||||
|
||||
impl PatchSet {
|
||||
pub fn load(filename: Path) -> Result<PatchSet, anyhow::Error> {
|
||||
let patches = {
|
||||
let mut file = File::open(filename)?;
|
||||
let mut buffer = std::io::BufReader::new(file);
|
||||
serde_json::from_reader(buffer)?
|
||||
};
|
||||
PatchSet {
|
||||
filename: filename.into(),
|
||||
patches: patches
|
||||
}
|
||||
}
|
||||
|
||||
pub fn filename(&self) -> Path {
|
||||
self.filename.as_path()
|
||||
}
|
||||
|
||||
pub fn patchRom(&self, &mut rom: RomData) {
|
||||
for patch in self.patches {
|
||||
rom.patch_data(patch);
|
||||
}
|
||||
}
|
||||
}
|
7
enemize/src/rom.rs
Normal file
7
enemize/src/rom.rs
Normal file
|
@ -0,0 +1,7 @@
|
|||
const ENEMIZER_INFO_SEED_OFFSET: usize = 0;
|
||||
const ENEMIZER_INFO_SEED_LENGTH: usize = 12;
|
||||
const ENEMIZER_INFO_VERSION_OFFSET: usize = ENEMIZER_INFO_SEED_OFFSET + ENEMIZER_INFO_SEED_LENGTH;
|
||||
const ENEMIZER_INFO_VERSION_LENGTH: usize = 8;
|
||||
const ENEMIZER_INFO_FLAGS_OFFSET: usize = ENEMIZER_INFO_VERSION_OFFSET + ENEMIZER_INFO_VERSION_LENGTH;
|
||||
const ENEMIZER_INFO_FLAGS_LENGTH: usize = 0x50;
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue