2025-02-24 00:30:16 -05:00
|
|
|
use crate::build_data::DABuildDataStruct;
|
|
|
|
use crate::common::{read_string_with_length, write_string_with_length};
|
2025-02-23 16:14:44 -05:00
|
|
|
use crate::guid::Guid;
|
2025-02-24 00:30:16 -05:00
|
|
|
use crate::linear_color::LinearColorStruct;
|
|
|
|
use crate::primary_asset_id::PrimaryAssetIdStruct;
|
|
|
|
use crate::primary_asset_type::PrimaryAssetTypeStruct;
|
|
|
|
use crate::structs::{
|
2025-02-25 19:37:42 -05:00
|
|
|
DAAssembleIdDataStruct, DACustomizeAssetIdDataStruct,
|
2025-02-24 00:30:16 -05:00
|
|
|
DAHumanoidColoringDataStruct, DAHumanoidFigureData, DALoadOptionStruct,
|
|
|
|
DAMachineColoringDataStruct, DAModuleColorStruct, DAModuleItemDataStruct, DATriggerDataStruct,
|
|
|
|
DATuningDataStruct, DATuningPointData, DateTimeStruct, QuatStruct, SaveSlotInfoStruct,
|
|
|
|
TransformStruct, VectorStruct,
|
|
|
|
};
|
|
|
|
use binrw::binrw;
|
2025-02-19 19:34:13 -05:00
|
|
|
|
|
|
|
#[binrw]
|
|
|
|
#[derive(Debug)]
|
2025-02-24 00:30:16 -05:00
|
|
|
#[br(import { magic: &str })]
|
2025-02-19 19:34:13 -05:00
|
|
|
pub enum Struct {
|
2025-02-24 00:30:16 -05:00
|
|
|
#[br(pre_assert(magic == "DateTime"))]
|
2025-02-19 19:34:13 -05:00
|
|
|
DateTime(DateTimeStruct),
|
2025-02-24 00:30:16 -05:00
|
|
|
#[br(pre_assert(magic == "DALoadOption"))]
|
2025-02-19 19:34:13 -05:00
|
|
|
DALoadOption(DALoadOptionStruct),
|
2025-02-24 00:30:16 -05:00
|
|
|
#[br(pre_assert(magic == "SaveSlotInfo"))]
|
2025-02-19 19:34:13 -05:00
|
|
|
SaveSlotInfo(SaveSlotInfoStruct),
|
2025-02-24 00:30:16 -05:00
|
|
|
#[br(pre_assert(magic == "PrimaryAssetType"))]
|
|
|
|
PrimaryAssetType(PrimaryAssetTypeStruct),
|
|
|
|
#[br(pre_assert(magic == "PrimaryAssetId"))]
|
2025-02-19 19:34:13 -05:00
|
|
|
PrimaryAssetId(PrimaryAssetIdStruct),
|
2025-02-24 00:30:16 -05:00
|
|
|
#[br(pre_assert(magic == "DAModuleItemData"))]
|
2025-02-19 19:34:13 -05:00
|
|
|
DAModuleItemData(DAModuleItemDataStruct),
|
2025-02-24 00:30:16 -05:00
|
|
|
#[br(pre_assert(magic == "DABuildData"))]
|
2025-02-19 19:34:13 -05:00
|
|
|
DABuildData(DABuildDataStruct),
|
2025-02-24 00:30:16 -05:00
|
|
|
#[br(pre_assert(magic == "DAAssembleIdData"))]
|
2025-02-19 19:34:13 -05:00
|
|
|
DAAssembleIdData(DAAssembleIdDataStruct),
|
2025-02-24 00:30:16 -05:00
|
|
|
#[br(pre_assert(magic == "Guid"))]
|
|
|
|
Guid(Guid),
|
|
|
|
#[br(pre_assert(magic == "DAMachineColoringData"))]
|
2025-02-19 19:34:13 -05:00
|
|
|
DAMachineColoringData(DAMachineColoringDataStruct),
|
2025-02-24 00:30:16 -05:00
|
|
|
#[br(pre_assert(magic == "DAModuleColor"))]
|
2025-02-19 19:34:13 -05:00
|
|
|
DAModuleColor(DAModuleColorStruct),
|
2025-02-24 00:30:16 -05:00
|
|
|
#[br(pre_assert(magic == "LinearColor"))]
|
2025-02-19 19:34:13 -05:00
|
|
|
LinearColor(LinearColorStruct),
|
2025-02-24 00:30:16 -05:00
|
|
|
#[br(pre_assert(magic == "DATriggerData"))]
|
|
|
|
DATriggerData(DATriggerDataStruct),
|
|
|
|
#[br(pre_assert(magic == "DACustomizeAssetIdData"))]
|
|
|
|
DACustomizeAssetIdData(DACustomizeAssetIdDataStruct),
|
|
|
|
#[br(pre_assert(magic == "DATuningData"))]
|
|
|
|
DATuningData(DATuningDataStruct),
|
|
|
|
#[br(pre_assert(magic == "DAHumanoidColoringData"))]
|
|
|
|
DAHumanoidColoringData(DAHumanoidColoringDataStruct),
|
|
|
|
#[br(pre_assert(magic == "DAHumanoidFigureData"))]
|
|
|
|
DAHumanoidFigureData(DAHumanoidFigureData),
|
|
|
|
#[br(pre_assert(magic == "DATuningPointData"))]
|
|
|
|
DATuningPointData(DATuningPointData),
|
|
|
|
#[br(pre_assert(magic == "Transform"))]
|
|
|
|
Transform(TransformStruct),
|
|
|
|
#[br(pre_assert(magic == "Quat"))]
|
|
|
|
Quat(QuatStruct),
|
|
|
|
#[br(pre_assert(magic == "Vector"))]
|
|
|
|
Vector(VectorStruct),
|
2025-02-19 19:34:13 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
#[binrw]
|
|
|
|
#[derive(Debug)]
|
|
|
|
pub struct StructProperty {
|
|
|
|
pub unk: u32,
|
2025-02-24 00:30:16 -05:00
|
|
|
#[brw(pad_before = 4)]
|
|
|
|
#[br(parse_with = read_string_with_length)]
|
|
|
|
#[bw(write_with = write_string_with_length)]
|
|
|
|
pub struct_name: String,
|
|
|
|
#[br(args { magic: &struct_name })]
|
|
|
|
#[br(pad_before = 17)]
|
2025-02-19 19:34:13 -05:00
|
|
|
pub r#struct: Struct,
|
|
|
|
}
|