From 9b1927f7002f756753235387fa58354f5daea86e Mon Sep 17 00:00:00 2001 From: Joshua Goins Date: Fri, 22 Sep 2023 17:44:31 -0400 Subject: [PATCH] Add support for writing fiin files --- src/fiin.rs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/fiin.rs b/src/fiin.rs index 7335a9a..093e329 100644 --- a/src/fiin.rs +++ b/src/fiin.rs @@ -4,7 +4,7 @@ use std::fs::read; use std::io::Cursor; -use binrw::BinRead; +use binrw::{BinRead, BinWrite}; use binrw::binrw; use crate::gamedata::MemoryBuffer; @@ -52,6 +52,17 @@ impl FileInfo { FileInfo::read(&mut cursor).ok() } + pub fn write_to_buffer(&self) -> Option { + let mut buffer = MemoryBuffer::new(); + + { + let mut cursor = Cursor::new(&mut buffer); + self.write(&mut cursor).ok()?; + } + + Some(buffer) + } + /// Creates a new FileInfo structure from a list of filenames. These filenames must be present in /// the current working directory in order to be read properly, since it also generates SHA1 /// hashes.