mirror of
https://github.com/redstrate/Physis.git
synced 2025-04-24 13:37:44 +00:00
Switch a lot more parsers from binread -> binrw
This doesn't necessarily mean that these formats support writing (yet) but just to solve the initial compilation errors.
This commit is contained in:
parent
c3c3df7c68
commit
177523831b
6 changed files with 61 additions and 58 deletions
24
src/exd.rs
24
src/exd.rs
|
@ -1,13 +1,13 @@
|
|||
use crate::common::Language;
|
||||
use crate::exh::{ColumnDataType, ExcelColumnDefinition, ExcelDataPagination, EXH};
|
||||
use crate::gamedata::MemoryBuffer;
|
||||
use binrw::BinRead;
|
||||
use binrw::{binread, Endian, ReadOptions};
|
||||
use binrw::binrw;
|
||||
use binrw::{BinRead, Endian, ReadOptions};
|
||||
use std::io::{Cursor, Seek, SeekFrom};
|
||||
|
||||
#[binread]
|
||||
#[br(magic = b"EXDF")]
|
||||
#[br(big)]
|
||||
#[binrw]
|
||||
#[brw(magic = b"EXDF")]
|
||||
#[brw(big)]
|
||||
#[allow(dead_code)]
|
||||
struct EXDHeader {
|
||||
version: u16,
|
||||
|
@ -17,23 +17,23 @@ struct EXDHeader {
|
|||
index_size: u32,
|
||||
}
|
||||
|
||||
#[binread]
|
||||
#[br(big)]
|
||||
#[binrw]
|
||||
#[brw(big)]
|
||||
struct ExcelDataOffset {
|
||||
row_id: u32,
|
||||
pub offset: u32,
|
||||
}
|
||||
|
||||
#[binread]
|
||||
#[br(big)]
|
||||
#[binrw]
|
||||
#[brw(big)]
|
||||
#[allow(dead_code)]
|
||||
struct ExcelDataRowHeader {
|
||||
data_size: u32,
|
||||
row_count: u16,
|
||||
}
|
||||
|
||||
#[binread]
|
||||
#[br(big)]
|
||||
#[binrw]
|
||||
#[brw(big)]
|
||||
#[allow(dead_code)]
|
||||
pub struct EXD {
|
||||
header: EXDHeader,
|
||||
|
@ -41,7 +41,7 @@ pub struct EXD {
|
|||
#[br(count = header.index_size / core::mem::size_of::<ExcelDataOffset>() as u32)]
|
||||
data_offsets: Vec<ExcelDataOffset>,
|
||||
|
||||
#[br(ignore)]
|
||||
#[brw(ignore)]
|
||||
pub rows: Vec<ExcelRow>,
|
||||
}
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ use std::io::Cursor;
|
|||
#[binrw]
|
||||
#[brw(magic = b"FileInfo")]
|
||||
#[derive(Debug)]
|
||||
#[br(little)]
|
||||
#[brw(little)]
|
||||
pub struct FileInfo {
|
||||
#[brw(pad_before = 16)]
|
||||
#[br(ignore)]
|
||||
|
|
21
src/log.rs
21
src/log.rs
|
@ -1,11 +1,11 @@
|
|||
use crate::gamedata::MemoryBuffer;
|
||||
use binrw::binread;
|
||||
use binrw::binrw;
|
||||
use binrw::BinRead;
|
||||
use std::io::{Cursor, Seek, SeekFrom};
|
||||
|
||||
#[binread]
|
||||
#[binrw]
|
||||
#[allow(dead_code)]
|
||||
#[br(little)]
|
||||
#[brw(little)]
|
||||
pub struct ChatLogHeader {
|
||||
content_size: u32,
|
||||
file_size: u32,
|
||||
|
@ -14,8 +14,8 @@ pub struct ChatLogHeader {
|
|||
offset_entries: Vec<u32>,
|
||||
}
|
||||
|
||||
#[binread]
|
||||
#[br(repr = u8)]
|
||||
#[binrw]
|
||||
#[brw(repr = u8)]
|
||||
#[derive(Debug)]
|
||||
enum EventFilter {
|
||||
SystemMessages = 3,
|
||||
|
@ -28,9 +28,9 @@ enum EventFilter {
|
|||
EnemyBattle = 170,
|
||||
}
|
||||
|
||||
#[binread]
|
||||
#[binrw]
|
||||
#[derive(Debug)]
|
||||
#[br(repr = u8)]
|
||||
#[brw(repr = u8)]
|
||||
enum EventChannel {
|
||||
System = 0,
|
||||
ServerAnnouncement = 3,
|
||||
|
@ -44,19 +44,20 @@ enum EventChannel {
|
|||
Unknown6 = 170,
|
||||
}
|
||||
|
||||
#[binread]
|
||||
#[binrw]
|
||||
#[derive(Debug)]
|
||||
#[allow(dead_code)]
|
||||
#[br(little)]
|
||||
#[brw(little)]
|
||||
pub struct ChatLogEntry {
|
||||
timestamp: u32,
|
||||
filter: EventFilter,
|
||||
channel: EventChannel,
|
||||
|
||||
#[br(temp)]
|
||||
#[bw(calc = 1)]
|
||||
garbage: u32,
|
||||
|
||||
#[br(ignore)]
|
||||
#[brw(ignore)]
|
||||
message: String,
|
||||
}
|
||||
|
||||
|
|
40
src/model.rs
40
src/model.rs
|
@ -33,8 +33,8 @@ pub struct ModelFileHeader {
|
|||
pub has_edge_geometry: bool,
|
||||
}
|
||||
|
||||
#[binread]
|
||||
#[br(repr = u8)]
|
||||
#[binrw]
|
||||
#[brw(repr = u8)]
|
||||
#[derive(Debug)]
|
||||
enum ModelFlags1 {
|
||||
DustOcclusionEnabled = 0x80,
|
||||
|
@ -47,8 +47,8 @@ enum ModelFlags1 {
|
|||
ShadowDisabled = 0x01,
|
||||
}
|
||||
|
||||
#[binread]
|
||||
#[br(repr = u8)]
|
||||
#[binrw]
|
||||
#[brw(repr = u8)]
|
||||
#[derive(Debug)]
|
||||
enum ModelFlags2 {
|
||||
None = 0x0,
|
||||
|
@ -62,7 +62,7 @@ enum ModelFlags2 {
|
|||
Unknown3 = 0x01,
|
||||
}
|
||||
|
||||
#[binread]
|
||||
#[binrw]
|
||||
#[derive(Debug)]
|
||||
#[allow(dead_code)]
|
||||
pub struct ModelHeader {
|
||||
|
@ -107,7 +107,7 @@ pub struct ModelHeader {
|
|||
bg_crest_change_material_index: u8,
|
||||
}
|
||||
|
||||
#[binread]
|
||||
#[binrw]
|
||||
#[derive(Debug)]
|
||||
#[allow(dead_code)]
|
||||
struct MeshLod {
|
||||
|
@ -142,7 +142,7 @@ struct MeshLod {
|
|||
index_data_offset: u32,
|
||||
}
|
||||
|
||||
#[binread]
|
||||
#[binrw]
|
||||
#[derive(Debug)]
|
||||
#[allow(dead_code)]
|
||||
struct Mesh {
|
||||
|
@ -163,7 +163,7 @@ struct Mesh {
|
|||
vertex_stream_count: u8,
|
||||
}
|
||||
|
||||
#[binread]
|
||||
#[binrw]
|
||||
#[derive(Debug)]
|
||||
#[allow(dead_code)]
|
||||
struct Submesh {
|
||||
|
@ -176,7 +176,7 @@ struct Submesh {
|
|||
bone_count: u16,
|
||||
}
|
||||
|
||||
#[binread]
|
||||
#[binrw]
|
||||
#[derive(Debug)]
|
||||
#[allow(dead_code)]
|
||||
struct BoneTable {
|
||||
|
@ -186,7 +186,7 @@ struct BoneTable {
|
|||
bone_count: u8,
|
||||
}
|
||||
|
||||
#[binread]
|
||||
#[binrw]
|
||||
#[derive(Debug)]
|
||||
#[allow(dead_code)]
|
||||
struct BoundingBox {
|
||||
|
@ -194,10 +194,10 @@ struct BoundingBox {
|
|||
max: [f32; 4],
|
||||
}
|
||||
|
||||
#[binread]
|
||||
#[binrw]
|
||||
#[derive(Debug)]
|
||||
#[allow(dead_code)]
|
||||
#[br(little)]
|
||||
#[brw(little)]
|
||||
struct ModelData {
|
||||
header: ModelHeader,
|
||||
|
||||
|
@ -229,12 +229,14 @@ struct ModelData {
|
|||
|
||||
// TODO: implement shapes
|
||||
#[br(temp)]
|
||||
#[bw(ignore)]
|
||||
submesh_bone_map_size: u32,
|
||||
|
||||
#[br(count = submesh_bone_map_size / 2, err_context("lods = {:#?}", lods))]
|
||||
submesh_bone_map: Vec<u16>,
|
||||
|
||||
#[br(temp)]
|
||||
#[bw(ignore)]
|
||||
padding_amount: u8,
|
||||
|
||||
#[br(pad_before = padding_amount)]
|
||||
|
@ -247,7 +249,7 @@ struct ModelData {
|
|||
bone_bounding_boxes: Vec<BoundingBox>,
|
||||
}
|
||||
|
||||
#[binread]
|
||||
#[binrw]
|
||||
#[derive(Debug)]
|
||||
#[allow(dead_code)]
|
||||
struct ElementId {
|
||||
|
@ -257,8 +259,8 @@ struct ElementId {
|
|||
rotate: [f32; 3],
|
||||
}
|
||||
|
||||
#[binread]
|
||||
#[br(repr = u8)]
|
||||
#[binrw]
|
||||
#[brw(repr = u8)]
|
||||
#[derive(Copy, Clone, Debug, PartialEq)]
|
||||
enum VertexType {
|
||||
Invalid = 0,
|
||||
|
@ -270,8 +272,8 @@ enum VertexType {
|
|||
Half4 = 14,
|
||||
}
|
||||
|
||||
#[binread]
|
||||
#[br(repr = u8)]
|
||||
#[binrw]
|
||||
#[brw(repr = u8)]
|
||||
#[derive(Copy, Clone, Debug)]
|
||||
enum VertexUsage {
|
||||
Position = 0,
|
||||
|
@ -284,10 +286,10 @@ enum VertexUsage {
|
|||
Color = 7,
|
||||
}
|
||||
|
||||
#[binread]
|
||||
#[binrw]
|
||||
#[derive(Copy, Clone, Debug)]
|
||||
#[allow(dead_code)]
|
||||
#[br(little)]
|
||||
#[brw(little)]
|
||||
struct VertexElement {
|
||||
stream: u8,
|
||||
offset: u8,
|
||||
|
|
20
src/mtrl.rs
20
src/mtrl.rs
|
@ -1,8 +1,8 @@
|
|||
use crate::gamedata::MemoryBuffer;
|
||||
use binrw::{binread, BinRead};
|
||||
use binrw::{binread, BinRead, binrw};
|
||||
use std::io::Cursor;
|
||||
|
||||
#[binread]
|
||||
#[binrw]
|
||||
#[derive(Debug)]
|
||||
#[allow(dead_code)]
|
||||
struct MaterialFileHeader {
|
||||
|
@ -17,7 +17,7 @@ struct MaterialFileHeader {
|
|||
additional_data_size: u8,
|
||||
}
|
||||
|
||||
#[binread]
|
||||
#[binrw]
|
||||
#[derive(Debug)]
|
||||
struct MaterialHeader {
|
||||
shader_value_list_size: u16,
|
||||
|
@ -27,7 +27,7 @@ struct MaterialHeader {
|
|||
sampler_count: u16,
|
||||
}
|
||||
|
||||
#[binread]
|
||||
#[binrw]
|
||||
#[derive(Debug)]
|
||||
#[allow(dead_code)]
|
||||
struct ColorSet {
|
||||
|
@ -36,7 +36,7 @@ struct ColorSet {
|
|||
index: u8,
|
||||
}
|
||||
|
||||
#[binread]
|
||||
#[binrw]
|
||||
#[derive(Debug)]
|
||||
#[allow(dead_code)]
|
||||
struct ColorSetInfo {
|
||||
|
@ -44,7 +44,7 @@ struct ColorSetInfo {
|
|||
data: Vec<u16>,
|
||||
}
|
||||
|
||||
#[binread]
|
||||
#[binrw]
|
||||
#[derive(Debug)]
|
||||
#[allow(dead_code)]
|
||||
struct ColorSetDyeInfo {
|
||||
|
@ -52,7 +52,7 @@ struct ColorSetDyeInfo {
|
|||
data: Vec<u16>,
|
||||
}
|
||||
|
||||
#[binread]
|
||||
#[binrw]
|
||||
#[derive(Debug)]
|
||||
#[allow(dead_code)]
|
||||
struct ShaderKey {
|
||||
|
@ -60,7 +60,7 @@ struct ShaderKey {
|
|||
value: u32,
|
||||
}
|
||||
|
||||
#[binread]
|
||||
#[binrw]
|
||||
#[derive(Debug)]
|
||||
#[allow(dead_code)]
|
||||
struct Constant {
|
||||
|
@ -69,7 +69,7 @@ struct Constant {
|
|||
value_size: u16,
|
||||
}
|
||||
|
||||
#[binread]
|
||||
#[binrw]
|
||||
#[derive(Debug)]
|
||||
#[allow(dead_code)]
|
||||
struct Sampler {
|
||||
|
@ -79,7 +79,7 @@ struct Sampler {
|
|||
texture_index: u8,
|
||||
}
|
||||
|
||||
#[binread]
|
||||
#[binrw]
|
||||
#[derive(Debug)]
|
||||
#[allow(dead_code)]
|
||||
#[br(little)]
|
||||
|
|
12
src/tex.rs
12
src/tex.rs
|
@ -1,5 +1,5 @@
|
|||
use crate::gamedata::MemoryBuffer;
|
||||
use binrw::binread;
|
||||
use binrw::{binread, binrw};
|
||||
use binrw::BinRead;
|
||||
use bitflags::bitflags;
|
||||
use std::cmp::min;
|
||||
|
@ -8,7 +8,7 @@ use texpresso::Format;
|
|||
|
||||
// Attributes and Format are adapted from Lumina (https://github.com/NotAdam/Lumina/blob/master/src/Lumina/Data/Files/TexFile.cs)
|
||||
bitflags! {
|
||||
#[binread]
|
||||
#[binrw]
|
||||
struct TextureAttribute : u32 {
|
||||
const DISCARD_PER_FRAME = 0x1;
|
||||
const DISCARD_PER_MAP = 0x2;
|
||||
|
@ -37,8 +37,8 @@ bitflags! {
|
|||
}
|
||||
}
|
||||
|
||||
#[binread]
|
||||
#[br(repr = u32)]
|
||||
#[binrw]
|
||||
#[brw(repr = u32)]
|
||||
#[derive(Debug)]
|
||||
enum TextureFormat {
|
||||
B8G8R8A8 = 0x1450,
|
||||
|
@ -46,10 +46,10 @@ enum TextureFormat {
|
|||
BC5 = 0x3431,
|
||||
}
|
||||
|
||||
#[binread]
|
||||
#[binrw]
|
||||
#[derive(Debug)]
|
||||
#[allow(dead_code)]
|
||||
#[br(little)]
|
||||
#[brw(little)]
|
||||
struct TexHeader {
|
||||
attribute: TextureAttribute,
|
||||
format: TextureFormat,
|
||||
|
|
Loading…
Add table
Reference in a new issue