Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,5 @@ Generated FFXIV excel schema structs.
Generated against:
||Version|
|--|--|
|**saint-coinach**|3cc64dedd011a8aa1a82674decc060f216edd547|
|**Excel**|2022.09.07.0000.0000|
|**saint-coinach**|0b22b78f97951bb66bfa78fb561aa4c7bf7af7cd|
|**Excel**|2025.12.23.0000.0000|
12 changes: 6 additions & 6 deletions src/sheet/achievement.rs
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
use std::vec::Vec;
use crate::error::PopulateError;
use std::result::Result;
use crate::metadata::MetadataAdapter;
use ironworks::sestring::SeString;
use ironworks::excel::Row;
use crate::utility::read_array;
use ironworks::excel::Row;
use ironworks::sestring::SeString;
use std::result::Result;
use std::vec::Vec;
impl MetadataAdapter for Achievement {
fn name() -> String {
"Achievement".to_string()
Expand All @@ -27,7 +27,7 @@ pub struct Achievement {
pub r#unknown8: u8,
pub r#unknown9: u8,
pub r#unknown10: u8,
pub r#icon: u16,
pub r#icon: u32,
pub r#unknown12: u8,
pub r#type: u8,
pub r#key: i32,
Expand All @@ -50,7 +50,7 @@ impl Achievement {
r#unknown8: row.field(8usize + offset)?.into_u8()?,
r#unknown9: row.field(9usize + offset)?.into_u8()?,
r#unknown10: row.field(10usize + offset)?.into_u8()?,
r#icon: row.field(11usize + offset)?.into_u16()?,
r#icon: row.field(11usize + offset)?.into_u32()?,
r#unknown12: row.field(12usize + offset)?.into_u8()?,
r#type: row.field(13usize + offset)?.into_u8()?,
r#key: row.field(14usize + offset)?.into_i32()?,
Expand Down
2 changes: 1 addition & 1 deletion src/sheet/achievement_category.rs
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
use crate::error::PopulateError;
use crate::metadata::MetadataAdapter;
use ironworks::excel::Row;
use ironworks::sestring::SeString;
use std::result::Result;
use crate::error::PopulateError;
impl MetadataAdapter for AchievementCategory {
fn name() -> String {
"AchievementCategory".to_string()
Expand Down
2 changes: 1 addition & 1 deletion src/sheet/achievement_hide_condition.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
use crate::error::PopulateError;
use crate::metadata::MetadataAdapter;
use ironworks::excel::Row;
use std::result::Result;
use crate::metadata::MetadataAdapter;
impl MetadataAdapter for AchievementHideCondition {
fn name() -> String {
"AchievementHideCondition".to_string()
Expand Down
2 changes: 1 addition & 1 deletion src/sheet/achievement_kind.rs
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
use crate::error::PopulateError;
use std::result::Result;
use crate::metadata::MetadataAdapter;
use ironworks::excel::Row;
use ironworks::sestring::SeString;
use std::result::Result;
impl MetadataAdapter for AchievementKind {
fn name() -> String {
"AchievementKind".to_string()
Expand Down
4 changes: 2 additions & 2 deletions src/sheet/achievement_target.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
use std::result::Result;
use crate::error::PopulateError;
use ironworks::excel::Row;
use crate::metadata::MetadataAdapter;
use ironworks::excel::Row;
use std::result::Result;
impl MetadataAdapter for AchievementTarget {
fn name() -> String {
"AchievementTarget".to_string()
Expand Down
116 changes: 61 additions & 55 deletions src/sheet/action.rs
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
use std::result::Result;
use ironworks::excel::Row;
use crate::error::PopulateError;
use crate::metadata::MetadataAdapter;
use ironworks::excel::Row;
use ironworks::sestring::SeString;
use crate::error::PopulateError;
use std::result::Result;
impl MetadataAdapter for Action {
fn name() -> String {
"Action".to_string()
Expand All @@ -28,8 +28,8 @@ pub struct Action {
pub r#behaviour_type: u8,
pub r#class_job_level: u8,
pub r#is_role_action: bool,
pub r#range: i8,
pub r#can_target_self: bool,
pub r#range: bool,
pub r#can_target_self: i8,
pub r#can_target_party: bool,
pub r#can_target_friendly: bool,
pub r#can_target_hostile: bool,
Expand All @@ -38,38 +38,38 @@ pub struct Action {
pub r#target_area: bool,
pub r#unknown22: bool,
pub r#unknown23: bool,
pub r#unknown24: i8,
pub r#can_target_dead: bool,
pub r#unknown24: bool,
pub r#can_target_dead: i8,
pub r#unknown26: bool,
pub r#cast_type: u8,
pub r#cast_type: bool,
pub r#effect_range: u8,
pub r#x_axis_modifier: u8,
pub r#unknown30: bool,
pub r#primary_cost_type: u8,
pub r#primary_cost_value: u16,
pub r#secondary_cost_type: u8,
pub r#secondary_cost_value: u16,
pub r#unknown30: u8,
pub r#primary_cost_type: bool,
pub r#primary_cost_value: u8,
pub r#secondary_cost_type: u16,
pub r#secondary_cost_value: u8,
pub r#action_combo: u16,
pub r#preserves_combo: bool,
pub r#cast100ms: u16,
pub r#unknown38: u8,
pub r#recast100ms: u16,
pub r#cooldown_group: u8,
pub r#preserves_combo: u16,
pub r#cast100ms: bool,
pub r#unknown38: u16,
pub r#recast100ms: u8,
pub r#cooldown_group: u16,
pub r#additional_cooldown_group: u8,
pub r#max_charges: u8,
pub r#attack_type: i8,
pub r#aspect: u8,
pub r#attack_type: u8,
pub r#aspect: i8,
pub r#action_proc_status: u8,
pub r#unknown46: u8,
pub r#status_gain_self: u16,
pub r#unlock_link: u32,
pub r#class_job_category: u8,
pub r#unknown46: u16,
pub r#status_gain_self: u8,
pub r#unlock_link: u16,
pub r#class_job_category: u32,
pub r#unknown50: u8,
pub r#unknown51: bool,
pub r#unknown51: u8,
pub r#affects_position: bool,
pub r#omen: u16,
pub r#omen: bool,
pub r#unknown54: u16,
pub r#is_pv_p: bool,
pub r#is_pv_p: u16,
pub r#unknown56: bool,
pub r#unknown57: bool,
pub r#unknown58: bool,
Expand All @@ -78,10 +78,13 @@ pub struct Action {
pub r#unknown61: bool,
pub r#unknown62: bool,
pub r#unknown63: bool,
pub r#unknown64: u8,
pub r#unknown65: bool,
pub r#unknown64: bool,
pub r#unknown65: u8,
pub r#unknown66: bool,
pub r#is_player_action: bool,
pub r#unknown68: bool,
pub r#unknown69: bool,
pub r#unknown70: u8,
}
impl Action {
pub fn populate(row: &Row, offset: usize) -> Result<Self, PopulateError> {
Expand All @@ -100,8 +103,8 @@ impl Action {
r#behaviour_type: row.field(11usize + offset)?.into_u8()?,
r#class_job_level: row.field(12usize + offset)?.into_u8()?,
r#is_role_action: row.field(13usize + offset)?.into_bool()?,
r#range: row.field(14usize + offset)?.into_i8()?,
r#can_target_self: row.field(15usize + offset)?.into_bool()?,
r#range: row.field(14usize + offset)?.into_bool()?,
r#can_target_self: row.field(15usize + offset)?.into_i8()?,
r#can_target_party: row.field(16usize + offset)?.into_bool()?,
r#can_target_friendly: row.field(17usize + offset)?.into_bool()?,
r#can_target_hostile: row.field(18usize + offset)?.into_bool()?,
Expand All @@ -110,38 +113,38 @@ impl Action {
r#target_area: row.field(21usize + offset)?.into_bool()?,
r#unknown22: row.field(22usize + offset)?.into_bool()?,
r#unknown23: row.field(23usize + offset)?.into_bool()?,
r#unknown24: row.field(24usize + offset)?.into_i8()?,
r#can_target_dead: row.field(25usize + offset)?.into_bool()?,
r#unknown24: row.field(24usize + offset)?.into_bool()?,
r#can_target_dead: row.field(25usize + offset)?.into_i8()?,
r#unknown26: row.field(26usize + offset)?.into_bool()?,
r#cast_type: row.field(27usize + offset)?.into_u8()?,
r#cast_type: row.field(27usize + offset)?.into_bool()?,
r#effect_range: row.field(28usize + offset)?.into_u8()?,
r#x_axis_modifier: row.field(29usize + offset)?.into_u8()?,
r#unknown30: row.field(30usize + offset)?.into_bool()?,
r#primary_cost_type: row.field(31usize + offset)?.into_u8()?,
r#primary_cost_value: row.field(32usize + offset)?.into_u16()?,
r#secondary_cost_type: row.field(33usize + offset)?.into_u8()?,
r#secondary_cost_value: row.field(34usize + offset)?.into_u16()?,
r#unknown30: row.field(30usize + offset)?.into_u8()?,
r#primary_cost_type: row.field(31usize + offset)?.into_bool()?,
r#primary_cost_value: row.field(32usize + offset)?.into_u8()?,
r#secondary_cost_type: row.field(33usize + offset)?.into_u16()?,
r#secondary_cost_value: row.field(34usize + offset)?.into_u8()?,
r#action_combo: row.field(35usize + offset)?.into_u16()?,
r#preserves_combo: row.field(36usize + offset)?.into_bool()?,
r#cast100ms: row.field(37usize + offset)?.into_u16()?,
r#unknown38: row.field(38usize + offset)?.into_u8()?,
r#recast100ms: row.field(39usize + offset)?.into_u16()?,
r#cooldown_group: row.field(40usize + offset)?.into_u8()?,
r#preserves_combo: row.field(36usize + offset)?.into_u16()?,
r#cast100ms: row.field(37usize + offset)?.into_bool()?,
r#unknown38: row.field(38usize + offset)?.into_u16()?,
r#recast100ms: row.field(39usize + offset)?.into_u8()?,
r#cooldown_group: row.field(40usize + offset)?.into_u16()?,
r#additional_cooldown_group: row.field(41usize + offset)?.into_u8()?,
r#max_charges: row.field(42usize + offset)?.into_u8()?,
r#attack_type: row.field(43usize + offset)?.into_i8()?,
r#aspect: row.field(44usize + offset)?.into_u8()?,
r#attack_type: row.field(43usize + offset)?.into_u8()?,
r#aspect: row.field(44usize + offset)?.into_i8()?,
r#action_proc_status: row.field(45usize + offset)?.into_u8()?,
r#unknown46: row.field(46usize + offset)?.into_u8()?,
r#status_gain_self: row.field(47usize + offset)?.into_u16()?,
r#unlock_link: row.field(48usize + offset)?.into_u32()?,
r#class_job_category: row.field(49usize + offset)?.into_u8()?,
r#unknown46: row.field(46usize + offset)?.into_u16()?,
r#status_gain_self: row.field(47usize + offset)?.into_u8()?,
r#unlock_link: row.field(48usize + offset)?.into_u16()?,
r#class_job_category: row.field(49usize + offset)?.into_u32()?,
r#unknown50: row.field(50usize + offset)?.into_u8()?,
r#unknown51: row.field(51usize + offset)?.into_bool()?,
r#unknown51: row.field(51usize + offset)?.into_u8()?,
r#affects_position: row.field(52usize + offset)?.into_bool()?,
r#omen: row.field(53usize + offset)?.into_u16()?,
r#omen: row.field(53usize + offset)?.into_bool()?,
r#unknown54: row.field(54usize + offset)?.into_u16()?,
r#is_pv_p: row.field(55usize + offset)?.into_bool()?,
r#is_pv_p: row.field(55usize + offset)?.into_u16()?,
r#unknown56: row.field(56usize + offset)?.into_bool()?,
r#unknown57: row.field(57usize + offset)?.into_bool()?,
r#unknown58: row.field(58usize + offset)?.into_bool()?,
Expand All @@ -150,10 +153,13 @@ impl Action {
r#unknown61: row.field(61usize + offset)?.into_bool()?,
r#unknown62: row.field(62usize + offset)?.into_bool()?,
r#unknown63: row.field(63usize + offset)?.into_bool()?,
r#unknown64: row.field(64usize + offset)?.into_u8()?,
r#unknown65: row.field(65usize + offset)?.into_bool()?,
r#unknown64: row.field(64usize + offset)?.into_bool()?,
r#unknown65: row.field(65usize + offset)?.into_u8()?,
r#unknown66: row.field(66usize + offset)?.into_bool()?,
r#is_player_action: row.field(67usize + offset)?.into_bool()?,
r#unknown68: row.field(68usize + offset)?.into_bool()?,
r#unknown69: row.field(69usize + offset)?.into_bool()?,
r#unknown70: row.field(70usize + offset)?.into_u8()?,
})
}
}
4 changes: 2 additions & 2 deletions src/sheet/action_cast_timeline.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
use std::result::Result;
use crate::error::PopulateError;
use crate::metadata::MetadataAdapter;
use ironworks::excel::Row;
use crate::error::PopulateError;
use std::result::Result;
impl MetadataAdapter for ActionCastTimeline {
fn name() -> String {
"ActionCastTimeline".to_string()
Expand Down
2 changes: 1 addition & 1 deletion src/sheet/action_cast_vfx.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
use crate::error::PopulateError;
use crate::metadata::MetadataAdapter;
use ironworks::excel::Row;
use crate::error::PopulateError;
use std::result::Result;
impl MetadataAdapter for ActionCastVFX {
fn name() -> String {
Expand Down
6 changes: 3 additions & 3 deletions src/sheet/action_category.rs
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
use ironworks::excel::Row;
use crate::error::PopulateError;
use std::result::Result;
use ironworks::sestring::SeString;
use crate::metadata::MetadataAdapter;
use ironworks::excel::Row;
use ironworks::sestring::SeString;
use std::result::Result;
impl MetadataAdapter for ActionCategory {
fn name() -> String {
"ActionCategory".to_string()
Expand Down
16 changes: 12 additions & 4 deletions src/sheet/action_combo_route.rs
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
use std::vec::Vec;
use crate::error::PopulateError;
use crate::metadata::MetadataAdapter;
use crate::utility::read_array;
use ironworks::excel::Row;
use ironworks::sestring::SeString;
use std::result::Result;
use ironworks::excel::Row;
use crate::error::PopulateError;
use crate::utility::read_array;
use std::vec::Vec;
impl MetadataAdapter for ActionComboRoute {
fn name() -> String {
"ActionComboRoute".to_string()
Expand All @@ -19,6 +19,10 @@ pub struct ActionComboRoute {
pub r#name: SeString,
pub r#unknown1: i8,
pub r#action: Vec<u16>,
pub r#unknown6: u16,
pub r#unknown7: u16,
pub r#unknown8: u16,
pub r#unknown9: bool,
}
impl ActionComboRoute {
pub fn populate(row: &Row, offset: usize) -> Result<Self, PopulateError> {
Expand All @@ -31,6 +35,10 @@ impl ActionComboRoute {
1usize,
|offset| { Result::Ok(row.field(2usize + offset)?.into_u16()?) },
)?,
r#unknown6: row.field(6usize + offset)?.into_u16()?,
r#unknown7: row.field(7usize + offset)?.into_u16()?,
r#unknown8: row.field(8usize + offset)?.into_u16()?,
r#unknown9: row.field(9usize + offset)?.into_bool()?,
})
}
}
4 changes: 2 additions & 2 deletions src/sheet/action_indirection.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
use crate::error::PopulateError;
use crate::metadata::MetadataAdapter;
use ironworks::excel::Row;
use std::result::Result;
use crate::metadata::MetadataAdapter;
use crate::error::PopulateError;
impl MetadataAdapter for ActionIndirection {
fn name() -> String {
"ActionIndirection".to_string()
Expand Down
6 changes: 4 additions & 2 deletions src/sheet/action_param.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
use ironworks::excel::Row;
use crate::metadata::MetadataAdapter;
use crate::error::PopulateError;
use crate::metadata::MetadataAdapter;
use ironworks::excel::Row;
use std::result::Result;
impl MetadataAdapter for ActionParam {
fn name() -> String {
Expand All @@ -14,11 +14,13 @@ impl MetadataAdapter for ActionParam {
#[derive(Debug)]
pub struct ActionParam {
pub r#name: i16,
pub r#unknown1: i16,
}
impl ActionParam {
pub fn populate(row: &Row, offset: usize) -> Result<Self, PopulateError> {
Result::Ok(Self {
r#name: row.field(0usize + offset)?.into_i16()?,
r#unknown1: row.field(1usize + offset)?.into_i16()?,
})
}
}
2 changes: 1 addition & 1 deletion src/sheet/action_proc_status.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
use crate::error::PopulateError;
use crate::metadata::MetadataAdapter;
use ironworks::excel::Row;
use std::result::Result;
use crate::error::PopulateError;
impl MetadataAdapter for ActionProcStatus {
fn name() -> String {
"ActionProcStatus".to_string()
Expand Down
Loading