From 09c0d199f260e9d4f465985d3e2030e351b98751 Mon Sep 17 00:00:00 2001 From: Joshua Goins Date: Fri, 22 Sep 2023 16:39:56 -0400 Subject: [PATCH] Add support for writing chardat files --- src/chardat.rs | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/chardat.rs b/src/chardat.rs index 1bde100..370db02 100644 --- a/src/chardat.rs +++ b/src/chardat.rs @@ -1,9 +1,9 @@ // SPDX-FileCopyrightText: 2023 Joshua Goins // SPDX-License-Identifier: GPL-3.0-or-later -use std::io::Cursor; +use std::io::{BufWriter, Cursor}; -use binrw::BinRead; +use binrw::{BinRead, BinWrite}; use binrw::binrw; use crate::gamedata::MemoryBuffer; @@ -150,4 +150,18 @@ impl CharDat { Some(CharDat::read(&mut cursor).ok()?) } + + // Writes a new dat file + pub fn write_to_buffer(&self) -> Option { + let mut buffer = MemoryBuffer::new(); + + { + let cursor = Cursor::new(&mut buffer); + let mut writer = BufWriter::new(cursor); + + self.write_le(&mut writer).unwrap(); + } + + Some(buffer) + } } \ No newline at end of file