From 4154d98f73cd6216e512a09a5d5643eba69b7a45 Mon Sep 17 00:00:00 2001 From: Kaze <118382618+kaze-xiv@users.noreply.github.com> Date: Sun, 28 Dec 2025 13:07:06 +0100 Subject: [PATCH] Update sheets: 2025-12-28 --- README.md | 4 +- src/sheet/achievement.rs | 12 +- src/sheet/achievement_category.rs | 2 +- src/sheet/achievement_hide_condition.rs | 2 +- src/sheet/achievement_kind.rs | 2 +- src/sheet/achievement_target.rs | 4 +- src/sheet/action.rs | 116 +- src/sheet/action_cast_timeline.rs | 4 +- src/sheet/action_cast_vfx.rs | 2 +- src/sheet/action_category.rs | 6 +- src/sheet/action_combo_route.rs | 16 +- src/sheet/action_indirection.rs | 4 +- src/sheet/action_param.rs | 6 +- src/sheet/action_proc_status.rs | 2 +- src/sheet/action_timeline.rs | 34 +- src/sheet/action_timeline_move.rs | 20 +- src/sheet/action_timeline_replace.rs | 2 +- src/sheet/action_transient.rs | 6 +- src/sheet/activity_feed_buttons.rs | 4 +- src/sheet/activity_feed_captions.rs | 6 +- src/sheet/activity_feed_group_captions.rs | 4 +- src/sheet/activity_feed_images.rs | 6 +- src/sheet/addon.rs | 6 +- src/sheet/adventure.rs | 20 +- src/sheet/adventure_ex_phase.rs | 6 +- src/sheet/aether_current.rs | 4 +- src/sheet/aether_current_comp_flg_set.rs | 8 +- src/sheet/aetherial_wheel.rs | 4 +- src/sheet/aetheryte.rs | 26 +- src/sheet/aetheryte_system_define.rs | 4 +- src/sheet/aetheryte_transient.rs | 12 +- src/sheet/airship_exploration_level.rs | 2 +- src/sheet/airship_exploration_log.rs | 4 +- src/sheet/airship_exploration_param_type.rs | 4 +- src/sheet/airship_exploration_part.rs | 4 +- src/sheet/airship_exploration_point.rs | 4 +- src/sheet/akatsuki_note.rs | 26 +- src/sheet/akatsuki_note_string.rs | 11 +- src/sheet/anima_weapon5.rs | 4 +- src/sheet/anima_weapon5_param.rs | 4 +- src/sheet/anima_weapon5_pattern_group.rs | 6 +- src/sheet/anima_weapon5_spirit_talk.rs | 4 +- src/sheet/anima_weapon5_spirit_talk_param.rs | 4 +- src/sheet/anima_weapon5_trade_item.rs | 6 +- src/sheet/anima_weapon_fui_talk.rs | 4 +- src/sheet/anima_weapon_fui_talk_param.rs | 4 +- src/sheet/anima_weapon_item.rs | 6 +- src/sheet/animation_lod.rs | 6 +- src/sheet/aoz_action.rs | 4 +- src/sheet/aoz_action_transient.rs | 2 +- src/sheet/aoz_arrangement.rs | 4 +- src/sheet/aoz_boss.rs | 2 +- src/sheet/aoz_content.rs | 30 +- src/sheet/aoz_content_briefing_b_npc.rs | 4 +- src/sheet/aoz_content_briefing_object.rs | 26 + src/sheet/aoz_report.rs | 4 +- src/sheet/aoz_score.rs | 4 +- src/sheet/aquarium_fish.rs | 6 +- src/sheet/aquarium_water.rs | 6 +- src/sheet/archive_item.rs | 16 +- src/sheet/array_event_handler.rs | 8 +- src/sheet/attack_type.rs | 6 +- src/sheet/attract.rs | 4 +- src/sheet/b_npc_announce_icon.rs | 2 +- src/sheet/b_npc_base.rs | 34 +- src/sheet/b_npc_base_pop_vfx.rs | 10 +- src/sheet/b_npc_customize.rs | 4 +- src/sheet/b_npc_name.rs | 4 +- src/sheet/b_npc_parts.rs | 148 +- src/sheet/b_npc_state.rs | 8 +- src/sheet/backlight_color.rs | 4 +- src/sheet/ballista.rs | 2 +- src/sheet/balloon.rs | 2 +- src/sheet/banner_bg.rs | 20 +- src/sheet/banner_condition.rs | 38 +- src/sheet/banner_decoration.rs | 20 +- src/sheet/banner_design_preset.rs | 6 +- src/sheet/banner_facial.rs | 12 +- src/sheet/banner_frame.rs | 20 +- src/sheet/banner_obtain_hint_type.rs | 9 +- src/sheet/banner_preset.rs | 60 +- src/sheet/banner_timeline.rs | 22 +- src/sheet/base_param.rs | 18 +- src/sheet/battle_leve.rs | 6 +- src/sheet/battle_leve_rule.rs | 4 +- src/sheet/beast_rank_bonus.rs | 8 +- src/sheet/beast_reputation_rank.rs | 6 +- src/sheet/beast_tribe.rs | 42 +- src/sheet/behavior.rs | 22 +- src/sheet/behavior_path.rs | 6 +- src/sheet/benchmark_override_equipment.rs | 4 +- src/sheet/bgm.rs | 6 +- src/sheet/bgm_fade.rs | 4 +- src/sheet/bgm_fade_type.rs | 4 +- src/sheet/bgm_scene.rs | 4 +- src/sheet/bgm_situation.rs | 4 +- src/sheet/bgm_switch.rs | 2 +- src/sheet/bgm_system_define.rs | 4 +- src/sheet/booster.rs | 18 +- src/sheet/buddy.rs | 6 +- src/sheet/buddy_action.rs | 6 +- src/sheet/buddy_equip.rs | 4 +- src/sheet/buddy_item.rs | 4 +- src/sheet/buddy_rank.rs | 2 +- src/sheet/buddy_skill.rs | 2 +- src/sheet/cabinet.rs | 10 +- src/sheet/cabinet_category.rs | 10 +- src/sheet/calendar.rs | 6 +- src/sheet/carry.rs | 10 +- src/sheet/channeling.rs | 12 +- src/sheet/chara_card_base.rs | 22 +- src/sheet/chara_card_decoration.rs | 32 +- src/sheet/chara_card_design_category.rs | 27 + src/sheet/chara_card_design_preset.rs | 4 +- src/sheet/chara_card_design_type.rs | 28 +- src/sheet/chara_card_header.rs | 22 +- src/sheet/chara_card_play_style.rs | 4 +- src/sheet/chara_make_class_equip.rs | 4 +- src/sheet/chara_make_customize.rs | 4 +- src/sheet/chara_make_name.rs | 14 +- src/sheet/chara_make_type.rs | 378 ++- src/sheet/chocobo_race.rs | 2 +- src/sheet/chocobo_race_ability.rs | 6 +- src/sheet/chocobo_race_ability_type.rs | 2 +- src/sheet/chocobo_race_item.rs | 4 +- src/sheet/chocobo_race_rank.rs | 6 +- src/sheet/chocobo_race_status.rs | 6 +- src/sheet/chocobo_race_territory.rs | 4 +- src/sheet/chocobo_race_tutorial.rs | 10 +- src/sheet/chocobo_race_weather.rs | 2 +- src/sheet/chocobo_taxi.rs | 8 +- src/sheet/chocobo_taxi_stand.rs | 8 +- src/sheet/circle_activity.rs | 6 +- src/sheet/class_job.rs | 88 +- src/sheet/class_job_category.rs | 16 +- src/sheet/collectables_shop.rs | 8 +- src/sheet/collectables_shop_item.rs | 16 +- src/sheet/collectables_shop_item_group.rs | 6 +- src/sheet/collectables_shop_refine.rs | 4 +- src/sheet/collectables_shop_reward_item.rs | 16 +- src/sheet/collectables_shop_reward_scrip.rs | 6 +- src/sheet/companion.rs | 60 +- src/sheet/companion_move.rs | 6 +- src/sheet/companion_transient.rs | 6 +- src/sheet/company_action.rs | 4 +- src/sheet/company_craft_draft.rs | 4 +- src/sheet/company_craft_draft_category.rs | 8 +- src/sheet/company_craft_manufactory_state.rs | 4 +- src/sheet/company_craft_part.rs | 8 +- src/sheet/company_craft_process.rs | 8 +- src/sheet/company_craft_sequence.rs | 6 +- src/sheet/company_craft_supply_item.rs | 2 +- src/sheet/company_craft_type.rs | 6 +- src/sheet/company_leve.rs | 6 +- src/sheet/company_leve_rule.rs | 4 +- src/sheet/complete_journal.rs | 8 +- src/sheet/complete_journal_category.rs | 6 +- src/sheet/completion.rs | 2 +- src/sheet/condition.rs | 4 +- src/sheet/config_key.rs | 6 +- src/sheet/content_close_cycle.rs | 22 + src/sheet/content_event_item.rs | 10 +- src/sheet/content_ex_action.rs | 4 +- src/sheet/content_finder_condition.rs | 230 +- .../content_finder_condition_transient.rs | 4 +- src/sheet/content_gauge.rs | 18 +- src/sheet/content_gauge_color.rs | 2 +- src/sheet/content_member_type.rs | 18 +- src/sheet/content_npc.rs | 26 + src/sheet/content_npc_talk.rs | 4 +- src/sheet/content_random_select.rs | 2 +- src/sheet/content_roulette.rs | 96 +- src/sheet/content_roulette_open_rule.rs | 4 +- src/sheet/content_roulette_role_bonus.rs | 12 +- src/sheet/content_talk.rs | 4 +- src/sheet/content_talk_param.rs | 10 +- src/sheet/content_type.rs | 8 +- src/sheet/contents_note.rs | 4 +- src/sheet/contents_tutorial.rs | 20 +- src/sheet/contents_tutorial_page.rs | 4 +- src/sheet/craft_action.rs | 4 +- src/sheet/craft_leve.rs | 8 +- src/sheet/craft_leve_talk.rs | 8 +- src/sheet/craft_level_difference.rs | 29 - src/sheet/craft_type.rs | 4 +- src/sheet/credit.rs | 4 +- src/sheet/credit_back_image.rs | 6 +- src/sheet/credit_cast.rs | 2 +- src/sheet/credit_list.rs | 2 +- src/sheet/credit_list_text.rs | 6 +- src/sheet/cs_bonus_content.rs | 47 + src/sheet/cs_bonus_content_identifier.rs | 41 + src/sheet/cs_bonus_content_type.rs | 45 + src/sheet/cs_bonus_mission.rs | 31 + src/sheet/cs_bonus_mission_type.rs | 24 + src/sheet/cs_bonus_season.rs | 52 + src/sheet/cs_bonus_text_data.rs | 25 + src/sheet/custom_talk.rs | 14 +- src/sheet/custom_talk_define_client.rs | 27 + src/sheet/custom_talk_nest_handlers.rs | 2 +- src/sheet/cut_scene_incomp_quest.rs | 6 +- src/sheet/cut_screen_image.rs | 6 +- src/sheet/cutscene.rs | 26 +- src/sheet/cutscene_motion.rs | 2 +- src/sheet/cutscene_work_index.rs | 4 +- src/sheet/cycle_time.rs | 4 +- src/sheet/daily_supply_item.rs | 6 +- src/sheet/dawn_content.rs | 42 +- src/sheet/dawn_content_participable.rs | 10 +- src/sheet/dawn_grow_member.rs | 12 +- src/sheet/dawn_member.rs | 14 +- src/sheet/dawn_member_ui_param.rs | 4 +- src/sheet/dawn_quest_member.rs | 2 +- src/sheet/deep_dungeon.rs | 48 +- src/sheet/deep_dungeon_danger.rs | 4 +- src/sheet/deep_dungeon_demiclone.rs | 45 + src/sheet/deep_dungeon_equipment.rs | 6 +- src/sheet/deep_dungeon_floor_effect_ui.rs | 4 +- src/sheet/deep_dungeon_item.rs | 4 +- src/sheet/deep_dungeon_layer.rs | 4 +- src/sheet/deep_dungeon_magic_stone.rs | 4 +- src/sheet/deep_dungeon_map5_x.rs | 8 +- src/sheet/deep_dungeon_room.rs | 6 +- src/sheet/deep_dungeon_status.rs | 4 +- src/sheet/default_talk.rs | 6 +- src/sheet/default_talk_lip_sync_type.rs | 4 +- src/sheet/delivery_quest.rs | 4 +- src/sheet/description.rs | 20 +- src/sheet/description_page.rs | 12 +- src/sheet/description_section.rs | 4 +- src/sheet/description_string.rs | 4 +- src/sheet/disposal_shop.rs | 38 +- src/sheet/disposal_shop_filter_type.rs | 4 +- src/sheet/disposal_shop_item.rs | 4 +- src/sheet/dps_challenge.rs | 4 +- src/sheet/dps_challenge_officer.rs | 4 +- src/sheet/dps_challenge_transient.rs | 4 +- src/sheet/dynamic_event.rs | 32 +- src/sheet/dynamic_event_enemy_type.rs | 4 +- src/sheet/dynamic_event_single_battle.rs | 6 +- src/sheet/dynamic_event_type.rs | 4 +- src/sheet/e_npc_base.rs | 138 +- src/sheet/e_npc_dress_up.rs | 4 +- src/sheet/e_npc_dress_up_dress.rs | 72 +- src/sheet/e_npc_resident.rs | 2 + src/sheet/e_obj.rs | 8 +- src/sheet/e_obj_name.rs | 2 +- src/sheet/emj_addon.rs | 6 +- src/sheet/emj_dani.rs | 26 +- src/sheet/emote.rs | 14 +- src/sheet/emote_category.rs | 4 +- src/sheet/emote_mode.rs | 6 +- src/sheet/equip_race_category.rs | 4 +- src/sheet/equip_slot_category.rs | 4 +- src/sheet/eureka_aether_item.rs | 4 +- src/sheet/eureka_aethernet.rs | 4 +- src/sheet/eureka_dungeon_portal.rs | 24 + src/sheet/eureka_grow_data.rs | 4 +- src/sheet/eureka_logos_mixer_probability.rs | 4 +- src/sheet/eureka_magia_action.rs | 4 +- src/sheet/eureka_magicite_item.rs | 2 +- src/sheet/eureka_magicite_item_type.rs | 2 +- src/sheet/eureka_sphere_element_adjust.rs | 4 +- src/sheet/event_action.rs | 6 +- src/sheet/event_custom_icon_type.rs | 8 +- src/sheet/event_icon_priority.rs | 28 +- src/sheet/event_icon_priority_pair.rs | 24 + src/sheet/event_icon_type.rs | 4 +- src/sheet/event_item.rs | 4 +- src/sheet/event_item_cast_timeline.rs | 2 +- src/sheet/event_item_help.rs | 8 +- src/sheet/event_item_timeline.rs | 4 +- src/sheet/event_path_move.rs | 33 +- src/sheet/event_system_define.rs | 2 +- src/sheet/ex_version.rs | 8 +- src/sheet/exported_gathering_point.rs | 4 +- src/sheet/exported_sg.rs | 6 +- src/sheet/extra_command.rs | 31 + src/sheet/fashion_check_theme_category.rs | 25 + src/sheet/fashion_check_weekly_theme.rs | 25 + src/sheet/fate.rs | 140 +- src/sheet/fate_event.rs | 6 +- src/sheet/fate_mode.rs | 2 +- src/sheet/fate_progress_ui.rs | 12 +- src/sheet/fate_shop.rs | 15 +- src/sheet/fate_token_type.rs | 2 +- src/sheet/fc_activity.rs | 4 +- src/sheet/fc_activity_category.rs | 6 +- src/sheet/fc_authority.rs | 8 +- src/sheet/fc_authority_category.rs | 6 +- src/sheet/fc_chest_name.rs | 6 +- src/sheet/fc_crest_symbol.rs | 6 +- src/sheet/fc_hierarchy.rs | 4 +- src/sheet/fc_profile.rs | 6 +- src/sheet/fc_rank.rs | 4 +- src/sheet/fc_reputation.rs | 4 +- src/sheet/fc_rights.rs | 6 +- src/sheet/fcc_shop.rs | 8 +- src/sheet/festival.rs | 8 +- src/sheet/fgs_addon.rs | 25 + src/sheet/fgs_stage_ui.rs | 38 + src/sheet/field_marker.rs | 6 +- src/sheet/fish_parameter.rs | 42 +- src/sheet/fishing_bait_parameter.rs | 24 + src/sheet/fishing_note_info.rs | 36 + src/sheet/fishing_record_type.rs | 4 +- src/sheet/fishing_record_type_transient.rs | 2 +- src/sheet/fishing_spot.rs | 38 +- src/sheet/fitting_shop.rs | 74 +- src/sheet/fitting_shop_category.rs | 15 +- src/sheet/fitting_shop_category_item.rs | 16 +- src/sheet/fitting_shop_item_set.rs | 25 +- src/sheet/frontline03.rs | 4 +- src/sheet/frontline04.rs | 28 - src/sheet/furniture_catalog_category.rs | 6 +- src/sheet/furniture_catalog_item_list.rs | 4 +- src/sheet/g_fate_climbing2.rs | 4 +- src/sheet/g_fate_climbing2_content.rs | 4 +- src/sheet/g_fate_climbing2_totem_type.rs | 4 +- src/sheet/g_fate_ride_shooting.rs | 4 +- ...teria_tomestone_rate.rs => g_fate_type.rs} | 18 +- src/sheet/game_reward_obtain_type.rs | 14 +- src/sheet/gardening_seed.rs | 10 +- src/sheet/gatherer_crafter_tool.rs | 26 + src/sheet/gatherer_reduction_reward.rs | 26 + src/sheet/gathering_condition.rs | 2 +- src/sheet/gathering_exp.rs | 2 +- src/sheet/gathering_item.rs | 22 +- .../gathering_item_level_convert_table.rs | 4 +- src/sheet/gathering_item_point.rs | 2 +- src/sheet/gathering_leve.rs | 6 +- src/sheet/gathering_leve_route.rs | 4 +- src/sheet/gathering_leve_rule.rs | 4 +- src/sheet/gathering_notebook_list.rs | 6 +- src/sheet/gathering_point.rs | 22 +- src/sheet/gathering_point_base.rs | 4 +- src/sheet/gathering_point_bonus.rs | 10 +- src/sheet/gathering_point_bonus_type.rs | 2 +- src/sheet/gathering_point_name.rs | 4 +- src/sheet/gathering_point_transient.rs | 2 +- src/sheet/gathering_rare_pop_time_table.rs | 6 +- src/sheet/gathering_sub_category.rs | 6 +- src/sheet/gathering_type.rs | 4 +- src/sheet/gc_army_capture_tactics.rs | 2 +- src/sheet/gc_army_equip_preset.rs | 4 +- src/sheet/gc_army_expedition.rs | 8 +- src/sheet/gc_army_expedition_type.rs | 6 +- src/sheet/gc_army_member_grow.rs | 10 +- src/sheet/gc_army_training.rs | 6 +- src/sheet/gc_rank_gridania_female_text.rs | 8 +- src/sheet/gc_rank_gridania_male_text.rs | 4 +- src/sheet/gc_rank_limsa_female_text.rs | 6 +- src/sheet/gc_rank_limsa_male_text.rs | 6 +- src/sheet/gc_rank_uldah_female_text.rs | 6 +- src/sheet/gc_rank_uldah_male_text.rs | 8 +- src/sheet/gc_scrip_shop_category.rs | 4 +- src/sheet/gc_scrip_shop_item.rs | 4 +- src/sheet/gc_shop.rs | 6 +- src/sheet/gc_shop_item_category.rs | 4 +- src/sheet/gc_supply_duty.rs | 4 +- src/sheet/gc_supply_duty_reward.rs | 4 +- src/sheet/general_action.rs | 6 +- src/sheet/gfate.rs | 104 +- src/sheet/gil_shop.rs | 10 +- src/sheet/gil_shop_item.rs | 26 +- src/sheet/gimmick_accessor.rs | 14 + src/sheet/gimmick_jump.rs | 16 +- src/sheet/gimmick_rect.rs | 10 +- src/sheet/glasses.rs | 51 + src/sheet/glasses_style.rs | 56 + src/sheet/gold_saucer_arcade_machine.rs | 13 +- src/sheet/gold_saucer_text_data.rs | 4 +- src/sheet/grand_company.rs | 24 +- src/sheet/grand_company_rank.rs | 6 +- src/sheet/group_pose_frame.rs | 16 +- src/sheet/group_pose_stamp.rs | 20 +- src/sheet/group_pose_stamp_category.rs | 6 +- src/sheet/guardian_deity.rs | 6 +- src/sheet/guide.rs | 4 +- src/sheet/guide_page.rs | 8 +- src/sheet/guide_page_string.rs | 6 +- src/sheet/guide_title.rs | 8 +- src/sheet/guild_order.rs | 20 +- src/sheet/guild_order_guide.rs | 22 +- src/sheet/guild_order_officer.rs | 20 +- src/sheet/guildleve_assignment.rs | 18 +- src/sheet/guildleve_assignment_category.rs | 8 +- src/sheet/guildleve_assignment_talk.rs | 6 +- src/sheet/hair_make_type.rs | 2328 ++++++++++++++++- src/sheet/house_retainer_pose.rs | 2 +- src/sheet/housing_appeal.rs | 6 +- src/sheet/housing_employment_npc_list.rs | 8 +- src/sheet/housing_employment_npc_race.rs | 4 +- src/sheet/housing_exterior.rs | 4 +- src/sheet/housing_furniture.rs | 18 +- src/sheet/housing_land_set.rs | 12 +- src/sheet/housing_map_marker_info.rs | 4 +- src/sheet/housing_merchant_pose.rs | 4 +- src/sheet/housing_placement.rs | 2 +- src/sheet/housing_preset.rs | 4 +- src/sheet/housing_united_exterior.rs | 8 +- src/sheet/housing_yard_object.rs | 20 +- src/sheet/how_to.rs | 10 +- src/sheet/how_to_category.rs | 4 +- src/sheet/how_to_page.rs | 6 +- src/sheet/huge_craftworks_npc.rs | 17 +- src/sheet/huge_craftworks_rank.rs | 4 +- src/sheet/hwd_announce.rs | 8 +- src/sheet/hwd_crafter_supply.rs | 6 +- src/sheet/hwd_crafter_supply_reward.rs | 4 +- src/sheet/hwd_crafter_supply_term.rs | 4 +- src/sheet/hwd_dev_layer_control.rs | 14 +- src/sheet/hwd_dev_level_ui.rs | 14 +- src/sheet/hwd_dev_lively.rs | 8 +- src/sheet/hwd_dev_progress.rs | 2 +- src/sheet/hwd_gathere_inspect_term.rs | 4 +- src/sheet/hwd_gatherer_inspection.rs | 6 +- src/sheet/hwd_gatherer_inspection_reward.rs | 4 +- src/sheet/hwd_info_board_article.rs | 4 +- src/sheet/hwd_info_board_article_transient.rs | 6 +- src/sheet/hwd_info_board_article_type.rs | 4 +- src/sheet/hwd_level_change_deception.rs | 4 +- src/sheet/hwd_shared_group.rs | 4 +- src/sheet/hwd_shared_group_control_param.rs | 2 +- src/sheet/icon_language.rs | 30 +- src/sheet/ikd_content_bonus.rs | 4 +- src/sheet/ikd_fish_param.rs | 6 +- src/sheet/ikd_route.rs | 18 +- src/sheet/ikd_route_table.rs | 6 +- src/sheet/ikd_spot.rs | 4 +- src/sheet/inclusion_shop.rs | 8 +- src/sheet/inclusion_shop_category.rs | 6 +- src/sheet/inclusion_shop_series.rs | 6 +- src/sheet/inclusion_shop_welcom.rs | 14 +- src/sheet/inclusion_shop_welcom_text.rs | 13 +- src/sheet/individual_weather.rs | 20 +- src/sheet/instance_content.rs | 86 +- src/sheet/instance_content_buff.rs | 4 +- src/sheet/instance_content_cs_bonus.rs | 26 - src/sheet/instance_content_guide.rs | 6 +- src/sheet/instance_content_qic_data.rs | 10 +- src/sheet/instance_content_text_data.rs | 4 +- src/sheet/item.rs | 16 +- src/sheet/item_action.rs | 6 +- src/sheet/item_action_telepo.rs | 2 +- src/sheet/item_barter_check.rs | 2 +- src/sheet/item_food.rs | 6 +- src/sheet/item_level.rs | 6 +- src/sheet/item_repair_price.rs | 12 +- src/sheet/item_repair_resource.rs | 4 +- src/sheet/item_retainer_level_up.rs | 14 +- src/sheet/item_search_category.rs | 6 +- src/sheet/item_series.rs | 4 +- src/sheet/item_sort_category.rs | 2 +- src/sheet/item_special_bonus.rs | 6 +- src/sheet/item_stain_condition.rs | 10 +- src/sheet/item_ui_category.rs | 6 +- src/sheet/jingle.rs | 4 +- src/sheet/job_hud_manual.rs | 16 +- src/sheet/job_hud_manual_priority.rs | 10 +- src/sheet/journal_category.rs | 4 +- src/sheet/journal_genre.rs | 4 +- src/sheet/journal_section.rs | 10 +- src/sheet/kine_driver_off_group.rs | 32 + src/sheet/knockback.rs | 4 +- src/sheet/legacy_quest.rs | 10 +- src/sheet/leve.rs | 66 +- src/sheet/leve_assignment_type.rs | 12 +- src/sheet/leve_client.rs | 2 +- src/sheet/leve_reward_item.rs | 8 +- src/sheet/leve_reward_item_group.rs | 4 +- src/sheet/leve_string.rs | 4 +- src/sheet/leve_vfx.rs | 2 +- src/sheet/level.rs | 4 +- src/sheet/lobby.rs | 8 +- src/sheet/log_filter.rs | 6 +- src/sheet/log_kind.rs | 12 +- src/sheet/log_message.rs | 12 +- src/sheet/lottery_exchange_shop.rs | 8 +- src/sheet/macro_icon.rs | 6 +- src/sheet/macro_icon_redirect_old.rs | 2 +- src/sheet/main_command.rs | 4 +- src/sheet/main_command_category.rs | 4 +- src/sheet/manderville_weapon_enhance.rs | 54 + src/sheet/maneuvers_armor.rs | 9 +- src/sheet/map.rs | 28 +- src/sheet/map_condition.rs | 2 + src/sheet/map_exclusive.rs | 14 +- src/sheet/map_marker.rs | 8 +- src/sheet/map_marker_region.rs | 24 +- src/sheet/map_replace.rs | 40 + src/sheet/map_symbol.rs | 2 +- src/sheet/map_transient_pv_p_map.rs | 14 +- src/sheet/map_type.rs | 12 +- src/sheet/marker.rs | 8 +- src/sheet/materia.rs | 14 +- src/sheet/materia_grade.rs | 30 +- src/sheet/materia_join_rate.rs | 8 +- src/sheet/materia_join_rate_gather_craft.rs | 6 +- ...{class_job_action_sort.rs => mc_guffin.rs} | 20 +- src/sheet/mc_guffin_ui_data.rs | 29 + src/sheet/mini_game_ra.rs | 40 +- src/sheet/mini_game_turn_break_action.rs | 43 + src/sheet/mini_game_turn_break_const.rs | 24 + src/sheet/mini_game_turn_break_enemy.rs | 92 + src/sheet/mini_game_turn_break_pop.rs | 30 + src/sheet/mini_game_turn_break_pop_offset.rs | 38 + src/sheet/mini_game_turn_break_stage.rs | 42 + src/sheet/mini_game_turn_break_status.rs | 35 + src/sheet/minion_race.rs | 4 +- src/sheet/minion_rules.rs | 4 +- src/sheet/minion_skill_type.rs | 6 +- src/sheet/mirage_store_set_item.rs | 35 + src/sheet/mirage_store_set_item_lookup.rs | 37 + src/sheet/mji_animals.rs | 14 +- src/sheet/mji_building.rs | 6 +- src/sheet/mji_building_place.rs | 8 +- src/sheet/mji_craftworks_object.rs | 6 +- src/sheet/mji_craftworks_object_theme.rs | 2 +- src/sheet/mji_craftworks_popularity.rs | 8 +- src/sheet/mji_craftworks_popularity_type.rs | 2 +- src/sheet/mji_craftworks_rank_ratio.rs | 6 +- src/sheet/mji_craftworks_supply_define.rs | 2 +- src/sheet/mji_craftworks_tension.rs | 12 +- src/sheet/mji_crop_seed.rs | 4 +- src/sheet/mji_disposal_shop_item.rs | 16 +- src/sheet/mji_disposal_shop_ui_category.rs | 4 +- src/sheet/mji_farm_pasture_rank.rs | 70 +- src/sheet/mji_function.rs | 20 +- src/sheet/mji_gardenscaping.rs | 40 + src/sheet/mji_gathering.rs | 4 +- src/sheet/mji_gathering_item.rs | 10 +- src/sheet/mji_gathering_object.rs | 31 +- src/sheet/mji_gathering_tool.rs | 12 +- src/sheet/mji_hud_mode.rs | 6 +- src/sheet/mji_item_category.rs | 2 +- src/sheet/mji_item_pouch.rs | 6 +- src/sheet/mji_key_item.rs | 6 +- src/sheet/mji_landmark.rs | 62 +- src/sheet/mji_landmark_place.rs | 12 +- src/sheet/mji_lively_actor.rs | 2 +- src/sheet/mji_minion_pop_areas.rs | 20 +- src/sheet/mji_name.rs | 39 + src/sheet/mji_nekomimi_request.rs | 30 + src/sheet/mji_progress.rs | 46 +- src/sheet/mji_rank.rs | 4 +- src/sheet/mji_recipe.rs | 6 +- src/sheet/mji_recipe_material.rs | 6 +- src/sheet/mji_stockyard_management_area.rs | 4 +- src/sheet/mji_stockyard_management_table.rs | 2 +- src/sheet/mji_text.rs | 4 +- src/sheet/mji_village_appearance_sg.rs | 20 +- src/sheet/mji_village_appearance_ui.rs | 6 +- src/sheet/mji_village_development.rs | 8 +- src/sheet/mkd_lore.rs | 37 + src/sheet/mob_hunt_order.rs | 2 +- src/sheet/mob_hunt_order_type.rs | 4 +- src/sheet/mob_hunt_reward.rs | 4 +- src/sheet/mob_hunt_reward_cap.rs | 4 +- src/sheet/mob_hunt_target.rs | 4 +- src/sheet/mod.rs | 144 +- src/sheet/model_chara.rs | 34 +- src/sheet/model_skeleton.rs | 3 - src/sheet/model_state.rs | 4 +- src/sheet/monster_note.rs | 8 +- src/sheet/monster_note_target.rs | 6 +- src/sheet/motion_timeline.rs | 12 +- src/sheet/motion_timeline_blend_table.rs | 4 +- src/sheet/mount.rs | 54 +- src/sheet/mount_action.rs | 6 +- src/sheet/mount_customize.rs | 64 +- src/sheet/mount_flying_condition.rs | 2 +- src/sheet/mount_speed.rs | 8 +- src/sheet/mount_transient.rs | 4 +- src/sheet/move_timeline.rs | 4 +- src/sheet/move_vfx.rs | 4 +- src/sheet/movie_staff_list.rs | 6 +- src/sheet/movie_subtitle.rs | 2 +- src/sheet/movie_subtitle500.rs | 4 +- src/sheet/movie_subtitle_voyage.rs | 4 +- src/sheet/multiple_help.rs | 29 + src/sheet/multiple_help_page.rs | 24 + src/sheet/multiple_help_string.rs | 27 + src/sheet/myc_temporary_item.rs | 2 +- src/sheet/myc_temporary_item_ui_category.rs | 8 +- src/sheet/myc_war_result_notebook.rs | 6 +- src/sheet/notebook_division.rs | 18 +- src/sheet/notebook_division_category.rs | 4 +- src/sheet/notorious_monster.rs | 4 +- src/sheet/notorious_monster_territory.rs | 31 + src/sheet/npc_equip.rs | 114 +- src/sheet/npc_yell.rs | 36 +- src/sheet/omen.rs | 8 +- src/sheet/omikuji.rs | 25 +- src/sheet/omikuji_guidance.rs | 17 +- src/sheet/online_status.rs | 22 +- src/sheet/open_content.rs | 4 +- src/sheet/open_content_candidate_name.rs | 2 +- src/sheet/opening.rs | 164 +- src/sheet/orchestrion.rs | 4 +- src/sheet/orchestrion_category.rs | 6 +- src/sheet/orchestrion_path.rs | 4 +- src/sheet/orchestrion_uiparam.rs | 4 +- src/sheet/ornament.rs | 8 +- src/sheet/ornament_action.rs | 20 +- src/sheet/param_grow.rs | 4 +- src/sheet/party_content.rs | 8 +- src/sheet/party_content_cutscene.rs | 4 +- src/sheet/party_content_text_data.rs | 4 +- src/sheet/patch_mark.rs | 6 +- src/sheet/perform.rs | 4 +- src/sheet/perform_group.rs | 4 +- src/sheet/perform_transient.rs | 2 +- src/sheet/pet.rs | 38 +- src/sheet/pet_action.rs | 8 +- src/sheet/pet_mirage.rs | 126 +- src/sheet/physics_group.rs | 6 +- src/sheet/physics_wind.rs | 4 +- src/sheet/picture.rs | 4 +- src/sheet/place_name.rs | 22 +- src/sheet/plant_pot_flower_seed.rs | 6 +- src/sheet/player_search_location.rs | 13 +- src/sheet/player_search_sub_location.rs | 23 +- src/sheet/pre_handler.rs | 8 +- src/sheet/preset_camera.rs | 8 +- src/sheet/preset_camera_adjust.rs | 6 +- src/sheet/previewable_items.rs | 24 + src/sheet/public_content.rs | 19 +- src/sheet/public_content_cutscene.rs | 4 +- src/sheet/public_content_text_data.rs | 6 +- src/sheet/pv_p_action.rs | 6 +- src/sheet/pv_p_action_sort.rs | 10 +- src/sheet/pv_p_base_param_value.rs | 28 + src/sheet/pv_p_rank.rs | 4 +- src/sheet/pv_p_select_trait.rs | 4 +- src/sheet/pv_p_series.rs | 72 +- src/sheet/pv_p_series_level.rs | 12 +- src/sheet/pv_p_trait.rs | 2 +- src/sheet/quest.rs | 534 +++- src/sheet/quest_accept_addition_condition.rs | 12 +- src/sheet/quest_battle.rs | 14 +- src/sheet/quest_chapter.rs | 4 +- src/sheet/quest_class_job_reward.rs | 40 +- src/sheet/quest_class_job_supply.rs | 16 +- src/sheet/quest_define_client.rs | 27 + src/sheet/quest_derived_class.rs | 4 +- src/sheet/quest_effect.rs | 40 +- src/sheet/quest_effect_define.rs | 4 +- src/sheet/quest_event_area_entrance_info.rs | 28 + src/sheet/quest_link_marker.rs | 32 + src/sheet/quest_link_marker_icon.rs | 24 + src/sheet/quest_link_marker_set.rs | 36 + src/sheet/quest_redo.rs | 72 +- src/sheet/quest_redo_chapter_ui.rs | 2 +- src/sheet/quest_redo_chapter_ui_category.rs | 2 +- src/sheet/quest_redo_chapter_ui_tab.rs | 4 +- src/sheet/quest_redo_incomp_chapter.rs | 4 +- src/sheet/quest_repeat_flag.rs | 6 +- src/sheet/quest_reward_other.rs | 2 +- src/sheet/quest_select_title.rs | 24 + src/sheet/quest_set_define.rs | 14 +- src/sheet/quick_chat.rs | 6 +- src/sheet/quick_chat_transient.rs | 4 +- src/sheet/race.rs | 6 +- src/sheet/racing_chocobo_item.rs | 6 +- src/sheet/racing_chocobo_name.rs | 6 +- src/sheet/racing_chocobo_name_category.rs | 2 +- src/sheet/racing_chocobo_name_info.rs | 8 +- src/sheet/racing_chocobo_param.rs | 2 +- src/sheet/raid_finder_param.rs | 10 +- src/sheet/reaction_event_object.rs | 14 +- src/sheet/reaction_event_object_info.rs | 10 +- src/sheet/recast_navimesh.rs | 40 +- src/sheet/recipe.rs | 76 +- src/sheet/recipe_level_table.rs | 20 +- src/sheet/recipe_lookup.rs | 4 +- src/sheet/recipe_notebook_list.rs | 6 +- src/sheet/recommend_contents.rs | 4 +- src/sheet/relic.rs | 2 +- src/sheet/relic3.rs | 4 +- src/sheet/relic_item.rs | 14 +- src/sheet/relic_note.rs | 6 +- src/sheet/relic_note_category.rs | 4 +- src/sheet/replace_action.rs | 52 + src/sheet/resident.rs | 2 +- src/sheet/resistance_weapon_adjust.rs | 8 +- src/sheet/retainer_fortune_reward_range.rs | 2 +- src/sheet/retainer_task.rs | 4 +- src/sheet/retainer_task_lv_range.rs | 2 +- src/sheet/retainer_task_normal.rs | 23 +- src/sheet/retainer_task_parameter.rs | 6 +- src/sheet/retainer_task_random.rs | 2 +- src/sheet/ride_shooting.rs | 168 +- src/sheet/ride_shooting_target_type.rs | 12 +- src/sheet/ride_shooting_text_data.rs | 2 +- src/sheet/rp_parameter.rs | 6 +- src/sheet/satisfaction_arbitration.rs | 4 +- src/sheet/satisfaction_bonus_guarantee.rs | 34 + src/sheet/satisfaction_npc.rs | 52 +- src/sheet/satisfaction_supply.rs | 10 +- src/sheet/satisfaction_supply_reward.rs | 4 +- src/sheet/scenario_tree.rs | 10 +- src/sheet/scenario_tree_tips.rs | 2 +- src/sheet/scenario_tree_tips_class_quest.rs | 8 +- src/sheet/scenario_type.rs | 8 +- src/sheet/screen_image.rs | 4 +- src/sheet/secret_recipe_book.rs | 6 +- src/sheet/sharlayan_craft_works.rs | 15 +- src/sheet/sharlayan_craft_works_supply.rs | 98 +- src/sheet/shell_fixed_from_command.rs | 66 + src/sheet/sky_island2_mission.rs | 15 +- src/sheet/sky_island2_mission_detail.rs | 10 +- src/sheet/sky_island2_mission_type.rs | 4 +- src/sheet/sky_island2_range_type.rs | 4 +- src/sheet/snipe.rs | 10 +- src/sheet/snipe_talk.rs | 8 +- src/sheet/snipe_talk_name.rs | 2 +- src/sheet/spearfishing_combo_target.rs | 15 +- src/sheet/spearfishing_item.rs | 8 +- src/sheet/spearfishing_notebook.rs | 6 +- src/sheet/spearfishing_record_page.rs | 8 +- src/sheet/spearfishing_silhouette.rs | 12 +- src/sheet/special_shop.rs | 1124 +++++++- src/sheet/special_shop_item_category.rs | 6 +- src/sheet/stain.rs | 10 +- src/sheet/stain_transient.rs | 2 +- src/sheet/stance_change.rs | 10 +- src/sheet/status.rs | 52 +- src/sheet/status_hit_effect.rs | 4 +- src/sheet/status_loop_vfx.rs | 38 +- src/sheet/story.rs | 10 +- src/sheet/submarine_exploration.rs | 8 +- src/sheet/submarine_map.rs | 2 +- src/sheet/submarine_part.rs | 2 +- src/sheet/submarine_rank.rs | 2 +- src/sheet/switch_talk.rs | 14 +- src/sheet/switch_talk_variation.rs | 2 +- src/sheet/telepo_relay.rs | 41 +- src/sheet/territory_type.rs | 24 +- src/sheet/territory_type_telepo.rs | 16 +- src/sheet/territory_type_transient.rs | 4 +- src/sheet/text_command.rs | 6 +- src/sheet/text_command_param.rs | 4 +- src/sheet/tilt_param.rs | 34 + src/sheet/title.rs | 2 +- src/sheet/tofu_edit_param.rs | 33 + src/sheet/tofu_object.rs | 67 + src/sheet/tofu_object_category.rs | 31 + src/sheet/tofu_preset.rs | 51 + src/sheet/tofu_preset_category.rs | 29 + src/sheet/tofu_preset_object.rs | 40 + src/sheet/tomestones.rs | 4 +- src/sheet/tomestones_item.rs | 4 +- src/sheet/topic_select.rs | 6 +- src/sheet/town.rs | 4 +- src/sheet/trait.rs | 30 +- src/sheet/trait_recast.rs | 2 +- src/sheet/trait_transient.rs | 6 +- src/sheet/transformation.rs | 12 +- src/sheet/treasure.rs | 16 +- src/sheet/treasure_hunt_rank.rs | 8 +- src/sheet/treasure_model.rs | 4 +- src/sheet/treasure_spot.rs | 2 +- src/sheet/tribe.rs | 4 +- src/sheet/triple_triad.rs | 4 +- src/sheet/triple_triad_card.rs | 4 +- src/sheet/triple_triad_card_obtain.rs | 12 +- src/sheet/triple_triad_card_rarity.rs | 6 +- src/sheet/triple_triad_card_resident.rs | 2 +- src/sheet/triple_triad_card_type.rs | 4 +- src/sheet/triple_triad_competition.rs | 4 +- src/sheet/triple_triad_resident.rs | 4 +- src/sheet/triple_triad_rule.rs | 14 +- src/sheet/tutorial.rs | 12 +- src/sheet/tutorial_dps.rs | 6 +- src/sheet/tutorial_healer.rs | 4 +- src/sheet/tutorial_tank.rs | 4 +- src/sheet/uds_event.rs | 6 +- src/sheet/uds_property.rs | 4 +- src/sheet/ui_color.rs | 14 +- src/sheet/ui_const.rs | 12 +- src/sheet/ui_level_lookup.rs | 24 + src/sheet/vase_flower.rs | 4 +- src/sheet/vfx.rs | 4 +- src/sheet/vvd_data.rs | 24 +- src/sheet/vvd_notebook_contents.rs | 19 +- src/sheet/vvd_notebook_series.rs | 24 +- src/sheet/vvd_route_data.rs | 12 +- src/sheet/vvd_variant_action.rs | 10 +- src/sheet/warp.rs | 6 +- src/sheet/warp_condition.rs | 8 +- src/sheet/warp_logic.rs | 6 +- src/sheet/weapon_timeline.rs | 10 +- src/sheet/weather.rs | 14 +- src/sheet/weather_group.rs | 4 +- src/sheet/weather_rate.rs | 6 +- src/sheet/weather_report_replace.rs | 2 +- src/sheet/web_guidance.rs | 4 +- src/sheet/web_url.rs | 2 +- src/sheet/wedding_bgm.rs | 4 +- src/sheet/weekly_bingo_order_data.rs | 16 +- src/sheet/weekly_bingo_reward_data.rs | 6 +- src/sheet/weekly_bingo_text.rs | 8 +- src/sheet/weekly_lot_bonus.rs | 136 +- src/sheet/world.rs | 6 +- src/sheet/world_dc_group_type.rs | 10 +- src/sheet/yard_catalog_category.rs | 6 +- src/sheet/yard_catalog_item_list.rs | 2 +- src/sheet/ykw.rs | 9 +- src/sheet/zone_shared_group.rs | 12 +- 810 files changed, 12789 insertions(+), 2955 deletions(-) create mode 100644 src/sheet/aoz_content_briefing_object.rs create mode 100644 src/sheet/chara_card_design_category.rs create mode 100644 src/sheet/content_npc.rs delete mode 100644 src/sheet/craft_level_difference.rs create mode 100644 src/sheet/cs_bonus_content.rs create mode 100644 src/sheet/cs_bonus_content_identifier.rs create mode 100644 src/sheet/cs_bonus_content_type.rs create mode 100644 src/sheet/cs_bonus_mission.rs create mode 100644 src/sheet/cs_bonus_mission_type.rs create mode 100644 src/sheet/cs_bonus_season.rs create mode 100644 src/sheet/cs_bonus_text_data.rs create mode 100644 src/sheet/custom_talk_define_client.rs create mode 100644 src/sheet/deep_dungeon_demiclone.rs create mode 100644 src/sheet/eureka_dungeon_portal.rs create mode 100644 src/sheet/event_icon_priority_pair.rs create mode 100644 src/sheet/extra_command.rs create mode 100644 src/sheet/fashion_check_theme_category.rs create mode 100644 src/sheet/fashion_check_weekly_theme.rs create mode 100644 src/sheet/fgs_addon.rs create mode 100644 src/sheet/fgs_stage_ui.rs create mode 100644 src/sheet/fishing_bait_parameter.rs create mode 100644 src/sheet/fishing_note_info.rs delete mode 100644 src/sheet/frontline04.rs rename src/sheet/{materia_tomestone_rate.rs => g_fate_type.rs} (56%) create mode 100644 src/sheet/gatherer_crafter_tool.rs create mode 100644 src/sheet/gatherer_reduction_reward.rs create mode 100644 src/sheet/glasses.rs create mode 100644 src/sheet/glasses_style.rs delete mode 100644 src/sheet/instance_content_cs_bonus.rs create mode 100644 src/sheet/kine_driver_off_group.rs create mode 100644 src/sheet/manderville_weapon_enhance.rs create mode 100644 src/sheet/map_replace.rs rename src/sheet/{class_job_action_sort.rs => mc_guffin.rs} (55%) create mode 100644 src/sheet/mc_guffin_ui_data.rs create mode 100644 src/sheet/mini_game_turn_break_action.rs create mode 100644 src/sheet/mini_game_turn_break_const.rs create mode 100644 src/sheet/mini_game_turn_break_enemy.rs create mode 100644 src/sheet/mini_game_turn_break_pop.rs create mode 100644 src/sheet/mini_game_turn_break_pop_offset.rs create mode 100644 src/sheet/mini_game_turn_break_stage.rs create mode 100644 src/sheet/mini_game_turn_break_status.rs create mode 100644 src/sheet/mirage_store_set_item.rs create mode 100644 src/sheet/mirage_store_set_item_lookup.rs create mode 100644 src/sheet/mji_gardenscaping.rs create mode 100644 src/sheet/mji_name.rs create mode 100644 src/sheet/mji_nekomimi_request.rs create mode 100644 src/sheet/mkd_lore.rs create mode 100644 src/sheet/multiple_help.rs create mode 100644 src/sheet/multiple_help_page.rs create mode 100644 src/sheet/multiple_help_string.rs create mode 100644 src/sheet/notorious_monster_territory.rs create mode 100644 src/sheet/previewable_items.rs create mode 100644 src/sheet/pv_p_base_param_value.rs create mode 100644 src/sheet/quest_define_client.rs create mode 100644 src/sheet/quest_event_area_entrance_info.rs create mode 100644 src/sheet/quest_link_marker.rs create mode 100644 src/sheet/quest_link_marker_icon.rs create mode 100644 src/sheet/quest_link_marker_set.rs create mode 100644 src/sheet/quest_select_title.rs create mode 100644 src/sheet/replace_action.rs create mode 100644 src/sheet/satisfaction_bonus_guarantee.rs create mode 100644 src/sheet/shell_fixed_from_command.rs create mode 100644 src/sheet/tilt_param.rs create mode 100644 src/sheet/tofu_edit_param.rs create mode 100644 src/sheet/tofu_object.rs create mode 100644 src/sheet/tofu_object_category.rs create mode 100644 src/sheet/tofu_preset.rs create mode 100644 src/sheet/tofu_preset_category.rs create mode 100644 src/sheet/tofu_preset_object.rs create mode 100644 src/sheet/ui_level_lookup.rs diff --git a/README.md b/README.md index 88198657..039f5aae 100644 --- a/README.md +++ b/README.md @@ -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| diff --git a/src/sheet/achievement.rs b/src/sheet/achievement.rs index edc623cb..96029410 100644 --- a/src/sheet/achievement.rs +++ b/src/sheet/achievement.rs @@ -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() @@ -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, @@ -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()?, diff --git a/src/sheet/achievement_category.rs b/src/sheet/achievement_category.rs index f6093e2a..3b6c209d 100644 --- a/src/sheet/achievement_category.rs +++ b/src/sheet/achievement_category.rs @@ -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() diff --git a/src/sheet/achievement_hide_condition.rs b/src/sheet/achievement_hide_condition.rs index fbcfe8f8..52d9ce9a 100644 --- a/src/sheet/achievement_hide_condition.rs +++ b/src/sheet/achievement_hide_condition.rs @@ -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() diff --git a/src/sheet/achievement_kind.rs b/src/sheet/achievement_kind.rs index da69b26d..d474e022 100644 --- a/src/sheet/achievement_kind.rs +++ b/src/sheet/achievement_kind.rs @@ -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() diff --git a/src/sheet/achievement_target.rs b/src/sheet/achievement_target.rs index 33bf5296..b0886e8f 100644 --- a/src/sheet/achievement_target.rs +++ b/src/sheet/achievement_target.rs @@ -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() diff --git a/src/sheet/action.rs b/src/sheet/action.rs index aa8d7cc8..d75268ca 100644 --- a/src/sheet/action.rs +++ b/src/sheet/action.rs @@ -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() @@ -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, @@ -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, @@ -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 { @@ -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()?, @@ -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()?, @@ -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()?, }) } } diff --git a/src/sheet/action_cast_timeline.rs b/src/sheet/action_cast_timeline.rs index 0464719b..79d9148c 100644 --- a/src/sheet/action_cast_timeline.rs +++ b/src/sheet/action_cast_timeline.rs @@ -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() diff --git a/src/sheet/action_cast_vfx.rs b/src/sheet/action_cast_vfx.rs index f9e4c17a..a0e98a08 100644 --- a/src/sheet/action_cast_vfx.rs +++ b/src/sheet/action_cast_vfx.rs @@ -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 { diff --git a/src/sheet/action_category.rs b/src/sheet/action_category.rs index df5b2e67..7c12db7f 100644 --- a/src/sheet/action_category.rs +++ b/src/sheet/action_category.rs @@ -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() diff --git a/src/sheet/action_combo_route.rs b/src/sheet/action_combo_route.rs index 48d2fd51..753c1aab 100644 --- a/src/sheet/action_combo_route.rs +++ b/src/sheet/action_combo_route.rs @@ -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() @@ -19,6 +19,10 @@ pub struct ActionComboRoute { pub r#name: SeString, pub r#unknown1: i8, pub r#action: Vec, + 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 { @@ -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()?, }) } } diff --git a/src/sheet/action_indirection.rs b/src/sheet/action_indirection.rs index cc7a5dfa..1ac0485a 100644 --- a/src/sheet/action_indirection.rs +++ b/src/sheet/action_indirection.rs @@ -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() diff --git a/src/sheet/action_param.rs b/src/sheet/action_param.rs index 28e678ae..f84666ce 100644 --- a/src/sheet/action_param.rs +++ b/src/sheet/action_param.rs @@ -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 { @@ -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 { Result::Ok(Self { r#name: row.field(0usize + offset)?.into_i16()?, + r#unknown1: row.field(1usize + offset)?.into_i16()?, }) } } diff --git a/src/sheet/action_proc_status.rs b/src/sheet/action_proc_status.rs index e668d685..6f551070 100644 --- a/src/sheet/action_proc_status.rs +++ b/src/sheet/action_proc_status.rs @@ -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() diff --git a/src/sheet/action_timeline.rs b/src/sheet/action_timeline.rs index 579ac612..bfce522b 100644 --- a/src/sheet/action_timeline.rs +++ b/src/sheet/action_timeline.rs @@ -1,7 +1,7 @@ -use ironworks::sestring::SeString; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; -use crate::error::PopulateError; +use ironworks::sestring::SeString; use std::result::Result; impl MetadataAdapter for ActionTimeline { fn name() -> String { @@ -22,15 +22,20 @@ pub struct ActionTimeline { pub r#look_at_mode: u8, pub r#key: SeString, pub r#action_timeline_id_mode: u8, - pub r#weapon_timeline: u8, + pub r#weapon_timeline: u16, pub r#load_type: u8, pub r#start_attach: u8, pub r#resident_pap: u8, - pub r#resident: bool, - pub r#kill_upper: u16, + pub r#unknown12: u16, + pub r#kill_upper: bool, pub r#is_motion_canceled_by_moving: bool, - pub r#unknown15: bool, - pub r#is_loop: u8, + pub r#unknown15: u8, + pub r#unknown16: bool, + pub r#unknown17: bool, + pub r#is_loop: bool, + pub r#unknown19: u8, + pub r#unknown20: u8, + pub r#unknown21: bool, } impl ActionTimeline { pub fn populate(row: &Row, offset: usize) -> Result { @@ -43,15 +48,20 @@ impl ActionTimeline { r#look_at_mode: row.field(5usize + offset)?.into_u8()?, r#key: row.field(6usize + offset)?.into_string()?, r#action_timeline_id_mode: row.field(7usize + offset)?.into_u8()?, - r#weapon_timeline: row.field(8usize + offset)?.into_u8()?, + r#weapon_timeline: row.field(8usize + offset)?.into_u16()?, r#load_type: row.field(9usize + offset)?.into_u8()?, r#start_attach: row.field(10usize + offset)?.into_u8()?, r#resident_pap: row.field(11usize + offset)?.into_u8()?, - r#resident: row.field(12usize + offset)?.into_bool()?, - r#kill_upper: row.field(13usize + offset)?.into_u16()?, + r#unknown12: row.field(12usize + offset)?.into_u16()?, + r#kill_upper: row.field(13usize + offset)?.into_bool()?, r#is_motion_canceled_by_moving: row.field(14usize + offset)?.into_bool()?, - r#unknown15: row.field(15usize + offset)?.into_bool()?, - r#is_loop: row.field(16usize + offset)?.into_u8()?, + r#unknown15: row.field(15usize + offset)?.into_u8()?, + r#unknown16: row.field(16usize + offset)?.into_bool()?, + r#unknown17: row.field(17usize + offset)?.into_bool()?, + r#is_loop: row.field(18usize + offset)?.into_bool()?, + r#unknown19: row.field(19usize + offset)?.into_u8()?, + r#unknown20: row.field(20usize + offset)?.into_u8()?, + r#unknown21: row.field(21usize + offset)?.into_bool()?, }) } } diff --git a/src/sheet/action_timeline_move.rs b/src/sheet/action_timeline_move.rs index 0827f4e0..8c795ca7 100644 --- a/src/sheet/action_timeline_move.rs +++ b/src/sheet/action_timeline_move.rs @@ -1,6 +1,6 @@ -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use std::result::Result; impl MetadataAdapter for ActionTimelineMove { fn name() -> String { @@ -12,9 +12,23 @@ impl MetadataAdapter for ActionTimelineMove { } } #[derive(Debug)] -pub struct ActionTimelineMove {} +pub struct ActionTimelineMove { + pub r#unknown0: u8, + pub r#unknown1: u8, + pub r#unknown2: u8, + pub r#unknown3: u8, + pub r#unknown4: u16, + pub r#unknown5: bool, +} impl ActionTimelineMove { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u8()?, + r#unknown1: row.field(1usize + offset)?.into_u8()?, + r#unknown2: row.field(2usize + offset)?.into_u8()?, + r#unknown3: row.field(3usize + offset)?.into_u8()?, + r#unknown4: row.field(4usize + offset)?.into_u16()?, + r#unknown5: row.field(5usize + offset)?.into_bool()?, + }) } } diff --git a/src/sheet/action_timeline_replace.rs b/src/sheet/action_timeline_replace.rs index 83fd1caa..14e0379f 100644 --- a/src/sheet/action_timeline_replace.rs +++ b/src/sheet/action_timeline_replace.rs @@ -1,7 +1,7 @@ use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for ActionTimelineReplace { fn name() -> String { "ActionTimelineReplace".to_string() diff --git a/src/sheet/action_transient.rs b/src/sheet/action_transient.rs index c1450451..ee2d6bec 100644 --- a/src/sheet/action_transient.rs +++ b/src/sheet/action_transient.rs @@ -1,8 +1,8 @@ -use ironworks::sestring::SeString; -use ironworks::excel::Row; -use std::result::Result; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for ActionTransient { fn name() -> String { "ActionTransient".to_string() diff --git a/src/sheet/activity_feed_buttons.rs b/src/sheet/activity_feed_buttons.rs index e29a11e2..ca8481e7 100644 --- a/src/sheet/activity_feed_buttons.rs +++ b/src/sheet/activity_feed_buttons.rs @@ -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; -use crate::metadata::MetadataAdapter; impl MetadataAdapter for ActivityFeedButtons { fn name() -> String { "ActivityFeedButtons".to_string() diff --git a/src/sheet/activity_feed_captions.rs b/src/sheet/activity_feed_captions.rs index 6676aff7..bfd3f0bc 100644 --- a/src/sheet/activity_feed_captions.rs +++ b/src/sheet/activity_feed_captions.rs @@ -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 ironworks::excel::Row; -use crate::metadata::MetadataAdapter; -use crate::error::PopulateError; impl MetadataAdapter for ActivityFeedCaptions { fn name() -> String { "ActivityFeedCaptions".to_string() diff --git a/src/sheet/activity_feed_group_captions.rs b/src/sheet/activity_feed_group_captions.rs index 03764ab1..f5494859 100644 --- a/src/sheet/activity_feed_group_captions.rs +++ b/src/sheet/activity_feed_group_captions.rs @@ -1,8 +1,8 @@ -use ironworks::sestring::SeString; -use std::result::Result; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for ActivityFeedGroupCaptions { fn name() -> String { "ActivityFeedGroupCaptions".to_string() diff --git a/src/sheet/activity_feed_images.rs b/src/sheet/activity_feed_images.rs index 56931a6b..b07b8d63 100644 --- a/src/sheet/activity_feed_images.rs +++ b/src/sheet/activity_feed_images.rs @@ -1,8 +1,8 @@ -use ironworks::sestring::SeString; -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 std::result::Result; impl MetadataAdapter for ActivityFeedImages { fn name() -> String { "ActivityFeedImages".to_string() diff --git a/src/sheet/addon.rs b/src/sheet/addon.rs index 64521a6e..c9a23969 100644 --- a/src/sheet/addon.rs +++ b/src/sheet/addon.rs @@ -1,8 +1,8 @@ -use ironworks::excel::Row; -use crate::metadata::MetadataAdapter; -use std::result::Result; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for Addon { fn name() -> String { "Addon".to_string() diff --git a/src/sheet/adventure.rs b/src/sheet/adventure.rs index 575ebaa9..9652bbc2 100644 --- a/src/sheet/adventure.rs +++ b/src/sheet/adventure.rs @@ -1,8 +1,8 @@ -use ironworks::sestring::SeString; use crate::error::PopulateError; -use std::result::Result; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for Adventure { fn name() -> String { "Adventure".to_string() @@ -23,11 +23,11 @@ pub struct Adventure { pub r#place_name: i32, pub r#icon_list: i32, pub r#icon_discovered: i32, + pub r#icon_undiscovered: i32, + pub r#is_initial: bool, pub r#name: SeString, pub r#impression: SeString, pub r#description: SeString, - pub r#icon_undiscovered: i32, - pub r#is_initial: bool, } impl Adventure { pub fn populate(row: &Row, offset: usize) -> Result { @@ -41,11 +41,11 @@ impl Adventure { r#place_name: row.field(6usize + offset)?.into_i32()?, r#icon_list: row.field(7usize + offset)?.into_i32()?, r#icon_discovered: row.field(8usize + offset)?.into_i32()?, - r#name: row.field(9usize + offset)?.into_string()?, - r#impression: row.field(10usize + offset)?.into_string()?, - r#description: row.field(11usize + offset)?.into_string()?, - r#icon_undiscovered: row.field(12usize + offset)?.into_i32()?, - r#is_initial: row.field(13usize + offset)?.into_bool()?, + r#icon_undiscovered: row.field(9usize + offset)?.into_i32()?, + r#is_initial: row.field(10usize + offset)?.into_bool()?, + r#name: row.field(11usize + offset)?.into_string()?, + r#impression: row.field(12usize + offset)?.into_string()?, + r#description: row.field(13usize + offset)?.into_string()?, }) } } diff --git a/src/sheet/adventure_ex_phase.rs b/src/sheet/adventure_ex_phase.rs index 9f626d17..da08f073 100644 --- a/src/sheet/adventure_ex_phase.rs +++ b/src/sheet/adventure_ex_phase.rs @@ -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 AdventureExPhase { fn name() -> String { "AdventureExPhase".to_string() @@ -17,6 +17,7 @@ pub struct AdventureExPhase { pub r#adventure_begin: u32, pub r#adventure_end: u32, pub r#expansion: u8, + pub r#unknown4: u32, } impl AdventureExPhase { pub fn populate(row: &Row, offset: usize) -> Result { @@ -25,6 +26,7 @@ impl AdventureExPhase { r#adventure_begin: row.field(1usize + offset)?.into_u32()?, r#adventure_end: row.field(2usize + offset)?.into_u32()?, r#expansion: row.field(3usize + offset)?.into_u8()?, + r#unknown4: row.field(4usize + offset)?.into_u32()?, }) } } diff --git a/src/sheet/aether_current.rs b/src/sheet/aether_current.rs index 45746146..85a78143 100644 --- a/src/sheet/aether_current.rs +++ b/src/sheet/aether_current.rs @@ -1,7 +1,7 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; use ironworks::excel::Row; -use crate::error::PopulateError; +use std::result::Result; impl MetadataAdapter for AetherCurrent { fn name() -> String { "AetherCurrent".to_string() diff --git a/src/sheet/aether_current_comp_flg_set.rs b/src/sheet/aether_current_comp_flg_set.rs index dfc7b3af..47dedebf 100644 --- a/src/sheet/aether_current_comp_flg_set.rs +++ b/src/sheet/aether_current_comp_flg_set.rs @@ -1,9 +1,9 @@ -use ironworks::excel::Row; -use crate::utility::read_array; -use crate::metadata::MetadataAdapter; -use std::vec::Vec; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use crate::utility::read_array; +use ironworks::excel::Row; use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for AetherCurrentCompFlgSet { fn name() -> String { "AetherCurrentCompFlgSet".to_string() diff --git a/src/sheet/aetherial_wheel.rs b/src/sheet/aetherial_wheel.rs index 9f5351fb..c404ef29 100644 --- a/src/sheet/aetherial_wheel.rs +++ b/src/sheet/aetherial_wheel.rs @@ -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 AetherialWheel { fn name() -> String { diff --git a/src/sheet/aetheryte.rs b/src/sheet/aetheryte.rs index 0fefaeae..1e4f6eb9 100644 --- a/src/sheet/aetheryte.rs +++ b/src/sheet/aetheryte.rs @@ -1,10 +1,10 @@ use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; -use std::vec::Vec; -use ironworks::sestring::SeString; use crate::utility::read_array; use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for Aetheryte { fn name() -> String { "Aetheryte".to_string() @@ -29,13 +29,15 @@ pub struct Aetheryte { pub r#territory: u16, pub r#level: Vec, pub r#is_aetheryte: bool, - pub r#unknown16: SeString, + pub r#unknown16: u8, + pub r#unknown17: SeString, pub r#aethernet_group: u8, pub r#invisible: bool, pub r#required_quest: u32, pub r#map: u16, pub r#aetherstream_x: i16, pub r#aetherstream_y: i16, + pub r#order: u8, } impl Aetheryte { pub fn populate(row: &Row, offset: usize) -> Result { @@ -58,13 +60,15 @@ impl Aetheryte { |offset| { Result::Ok(row.field(11usize + offset)?.into_u32()?) }, )?, r#is_aetheryte: row.field(15usize + offset)?.into_bool()?, - r#unknown16: row.field(16usize + offset)?.into_string()?, - r#aethernet_group: row.field(17usize + offset)?.into_u8()?, - r#invisible: row.field(18usize + offset)?.into_bool()?, - r#required_quest: row.field(19usize + offset)?.into_u32()?, - r#map: row.field(20usize + offset)?.into_u16()?, - r#aetherstream_x: row.field(21usize + offset)?.into_i16()?, - r#aetherstream_y: row.field(22usize + offset)?.into_i16()?, + r#unknown16: row.field(16usize + offset)?.into_u8()?, + r#unknown17: row.field(17usize + offset)?.into_string()?, + r#aethernet_group: row.field(18usize + offset)?.into_u8()?, + r#invisible: row.field(19usize + offset)?.into_bool()?, + r#required_quest: row.field(20usize + offset)?.into_u32()?, + r#map: row.field(21usize + offset)?.into_u16()?, + r#aetherstream_x: row.field(22usize + offset)?.into_i16()?, + r#aetherstream_y: row.field(23usize + offset)?.into_i16()?, + r#order: row.field(24usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/aetheryte_system_define.rs b/src/sheet/aetheryte_system_define.rs index 25d8e864..3226505b 100644 --- a/src/sheet/aetheryte_system_define.rs +++ b/src/sheet/aetheryte_system_define.rs @@ -1,8 +1,8 @@ -use ironworks::excel::Row; +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 AetheryteSystemDefine { fn name() -> String { "AetheryteSystemDefine".to_string() diff --git a/src/sheet/aetheryte_transient.rs b/src/sheet/aetheryte_transient.rs index c7e511e6..2d352050 100644 --- a/src/sheet/aetheryte_transient.rs +++ b/src/sheet/aetheryte_transient.rs @@ -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 AetheryteTransient { fn name() -> String { "AetheryteTransient".to_string() @@ -12,9 +12,13 @@ impl MetadataAdapter for AetheryteTransient { } } #[derive(Debug)] -pub struct AetheryteTransient {} +pub struct AetheryteTransient { + pub r#unknown0: bool, +} impl AetheryteTransient { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_bool()?, + }) } } diff --git a/src/sheet/airship_exploration_level.rs b/src/sheet/airship_exploration_level.rs index 225749b4..af94c501 100644 --- a/src/sheet/airship_exploration_level.rs +++ b/src/sheet/airship_exploration_level.rs @@ -1,7 +1,7 @@ -use std::result::Result; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for AirshipExplorationLevel { fn name() -> String { "AirshipExplorationLevel".to_string() diff --git a/src/sheet/airship_exploration_log.rs b/src/sheet/airship_exploration_log.rs index 1385f039..6bf788d9 100644 --- a/src/sheet/airship_exploration_log.rs +++ b/src/sheet/airship_exploration_log.rs @@ -1,8 +1,8 @@ -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; +use ironworks::excel::Row; use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for AirshipExplorationLog { fn name() -> String { "AirshipExplorationLog".to_string() diff --git a/src/sheet/airship_exploration_param_type.rs b/src/sheet/airship_exploration_param_type.rs index b6409f08..d9e8cd3f 100644 --- a/src/sheet/airship_exploration_param_type.rs +++ b/src/sheet/airship_exploration_param_type.rs @@ -1,7 +1,7 @@ -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; -use ironworks::sestring::SeString; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use ironworks::sestring::SeString; use std::result::Result; impl MetadataAdapter for AirshipExplorationParamType { fn name() -> String { diff --git a/src/sheet/airship_exploration_part.rs b/src/sheet/airship_exploration_part.rs index 5d3f1be2..ed3e994a 100644 --- a/src/sheet/airship_exploration_part.rs +++ b/src/sheet/airship_exploration_part.rs @@ -1,7 +1,7 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; use ironworks::excel::Row; -use crate::error::PopulateError; +use std::result::Result; impl MetadataAdapter for AirshipExplorationPart { fn name() -> String { "AirshipExplorationPart".to_string() diff --git a/src/sheet/airship_exploration_point.rs b/src/sheet/airship_exploration_point.rs index c0140a48..3a0a19c4 100644 --- a/src/sheet/airship_exploration_point.rs +++ b/src/sheet/airship_exploration_point.rs @@ -1,8 +1,8 @@ -use std::result::Result; -use ironworks::sestring::SeString; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for AirshipExplorationPoint { fn name() -> String { "AirshipExplorationPoint".to_string() diff --git a/src/sheet/akatsuki_note.rs b/src/sheet/akatsuki_note.rs index 7fb61c7c..33860358 100644 --- a/src/sheet/akatsuki_note.rs +++ b/src/sheet/akatsuki_note.rs @@ -1,7 +1,7 @@ use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for AkatsukiNote { fn name() -> String { "AkatsukiNote".to_string() @@ -12,9 +12,29 @@ impl MetadataAdapter for AkatsukiNote { } } #[derive(Debug)] -pub struct AkatsukiNote {} +pub struct AkatsukiNote { + pub r#unknown0: i32, + pub r#unknown1: i32, + pub r#unknown2: i32, + pub r#unknown3: i32, + pub r#unknown4: i32, + pub r#unknown5: i32, + pub r#unknown6: i32, + pub r#unknown7: i32, + pub r#unknown8: i32, +} impl AkatsukiNote { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_i32()?, + r#unknown1: row.field(1usize + offset)?.into_i32()?, + r#unknown2: row.field(2usize + offset)?.into_i32()?, + r#unknown3: row.field(3usize + offset)?.into_i32()?, + r#unknown4: row.field(4usize + offset)?.into_i32()?, + r#unknown5: row.field(5usize + offset)?.into_i32()?, + r#unknown6: row.field(6usize + offset)?.into_i32()?, + r#unknown7: row.field(7usize + offset)?.into_i32()?, + r#unknown8: row.field(8usize + offset)?.into_i32()?, + }) } } diff --git a/src/sheet/akatsuki_note_string.rs b/src/sheet/akatsuki_note_string.rs index 9c3974da..0bb02661 100644 --- a/src/sheet/akatsuki_note_string.rs +++ b/src/sheet/akatsuki_note_string.rs @@ -1,6 +1,7 @@ -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use ironworks::sestring::SeString; use std::result::Result; impl MetadataAdapter for AkatsukiNoteString { fn name() -> String { @@ -12,9 +13,13 @@ impl MetadataAdapter for AkatsukiNoteString { } } #[derive(Debug)] -pub struct AkatsukiNoteString {} +pub struct AkatsukiNoteString { + pub r#unknown0: SeString, +} impl AkatsukiNoteString { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_string()?, + }) } } diff --git a/src/sheet/anima_weapon5.rs b/src/sheet/anima_weapon5.rs index eec69cb3..1240b023 100644 --- a/src/sheet/anima_weapon5.rs +++ b/src/sheet/anima_weapon5.rs @@ -1,8 +1,8 @@ use crate::error::PopulateError; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; -use std::result::Result; use crate::utility::read_array; +use ironworks::excel::Row; +use std::result::Result; use std::vec::Vec; impl MetadataAdapter for AnimaWeapon5 { fn name() -> String { diff --git a/src/sheet/anima_weapon5_param.rs b/src/sheet/anima_weapon5_param.rs index d8c31365..b3b3863c 100644 --- a/src/sheet/anima_weapon5_param.rs +++ b/src/sheet/anima_weapon5_param.rs @@ -1,7 +1,7 @@ -use ironworks::sestring::SeString; use crate::error::PopulateError; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; use std::result::Result; impl MetadataAdapter for AnimaWeapon5Param { fn name() -> String { diff --git a/src/sheet/anima_weapon5_pattern_group.rs b/src/sheet/anima_weapon5_pattern_group.rs index 31a71d64..1653a026 100644 --- a/src/sheet/anima_weapon5_pattern_group.rs +++ b/src/sheet/anima_weapon5_pattern_group.rs @@ -1,8 +1,8 @@ -use ironworks::excel::Row; -use std::result::Result; use crate::error::PopulateError; -use ironworks::sestring::SeString; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for AnimaWeapon5PatternGroup { fn name() -> String { "AnimaWeapon5PatternGroup".to_string() diff --git a/src/sheet/anima_weapon5_spirit_talk.rs b/src/sheet/anima_weapon5_spirit_talk.rs index e7bedfa5..9af4e303 100644 --- a/src/sheet/anima_weapon5_spirit_talk.rs +++ b/src/sheet/anima_weapon5_spirit_talk.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; use crate::error::PopulateError; -use std::result::Result; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for AnimaWeapon5SpiritTalk { fn name() -> String { "AnimaWeapon5SpiritTalk".to_string() diff --git a/src/sheet/anima_weapon5_spirit_talk_param.rs b/src/sheet/anima_weapon5_spirit_talk_param.rs index 733c95dd..50717459 100644 --- a/src/sheet/anima_weapon5_spirit_talk_param.rs +++ b/src/sheet/anima_weapon5_spirit_talk_param.rs @@ -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::metadata::MetadataAdapter; -use crate::error::PopulateError; impl MetadataAdapter for AnimaWeapon5SpiritTalkParam { fn name() -> String { "AnimaWeapon5SpiritTalkParam".to_string() diff --git a/src/sheet/anima_weapon5_trade_item.rs b/src/sheet/anima_weapon5_trade_item.rs index c0052939..6d47c960 100644 --- a/src/sheet/anima_weapon5_trade_item.rs +++ b/src/sheet/anima_weapon5_trade_item.rs @@ -1,9 +1,9 @@ -use ironworks::excel::Row; use crate::error::PopulateError; -use std::vec::Vec; -use crate::utility::read_array; use crate::metadata::MetadataAdapter; +use crate::utility::read_array; +use ironworks::excel::Row; use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for AnimaWeapon5TradeItem { fn name() -> String { "AnimaWeapon5TradeItem".to_string() diff --git a/src/sheet/anima_weapon_fui_talk.rs b/src/sheet/anima_weapon_fui_talk.rs index 5ff7bd56..69c2fc47 100644 --- a/src/sheet/anima_weapon_fui_talk.rs +++ b/src/sheet/anima_weapon_fui_talk.rs @@ -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 AnimaWeaponFUITalk { fn name() -> String { "AnimaWeaponFUITalk".to_string() diff --git a/src/sheet/anima_weapon_fui_talk_param.rs b/src/sheet/anima_weapon_fui_talk_param.rs index 1afc6db4..bef3bbd8 100644 --- a/src/sheet/anima_weapon_fui_talk_param.rs +++ b/src/sheet/anima_weapon_fui_talk_param.rs @@ -1,8 +1,8 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; use ironworks::excel::Row; use ironworks::sestring::SeString; -use crate::error::PopulateError; +use std::result::Result; impl MetadataAdapter for AnimaWeaponFUITalkParam { fn name() -> String { "AnimaWeaponFUITalkParam".to_string() diff --git a/src/sheet/anima_weapon_item.rs b/src/sheet/anima_weapon_item.rs index b2148de1..9dd2d433 100644 --- a/src/sheet/anima_weapon_item.rs +++ b/src/sheet/anima_weapon_item.rs @@ -1,9 +1,9 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; use crate::utility::read_array; -use crate::error::PopulateError; -use std::vec::Vec; use ironworks::excel::Row; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for AnimaWeaponItem { fn name() -> String { "AnimaWeaponItem".to_string() diff --git a/src/sheet/animation_lod.rs b/src/sheet/animation_lod.rs index 239941b3..4d9006e8 100644 --- a/src/sheet/animation_lod.rs +++ b/src/sheet/animation_lod.rs @@ -1,9 +1,9 @@ -use crate::utility::read_array; -use std::vec::Vec; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; +use crate::utility::read_array; use ironworks::excel::Row; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for AnimationLOD { fn name() -> String { "AnimationLOD".to_string() diff --git a/src/sheet/aoz_action.rs b/src/sheet/aoz_action.rs index 77df3e33..64367309 100644 --- a/src/sheet/aoz_action.rs +++ b/src/sheet/aoz_action.rs @@ -1,7 +1,7 @@ -use std::result::Result; -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for AozAction { fn name() -> String { "AozAction".to_string() diff --git a/src/sheet/aoz_action_transient.rs b/src/sheet/aoz_action_transient.rs index c017a55f..251574a3 100644 --- a/src/sheet/aoz_action_transient.rs +++ b/src/sheet/aoz_action_transient.rs @@ -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 ironworks::excel::Row; impl MetadataAdapter for AozActionTransient { fn name() -> String { "AozActionTransient".to_string() diff --git a/src/sheet/aoz_arrangement.rs b/src/sheet/aoz_arrangement.rs index 76eeca4d..3e99dd56 100644 --- a/src/sheet/aoz_arrangement.rs +++ b/src/sheet/aoz_arrangement.rs @@ -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 AOZArrangement { fn name() -> String { "AOZArrangement".to_string() diff --git a/src/sheet/aoz_boss.rs b/src/sheet/aoz_boss.rs index e8acb57b..8ab0976b 100644 --- a/src/sheet/aoz_boss.rs +++ b/src/sheet/aoz_boss.rs @@ -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 AOZBoss { fn name() -> String { "AOZBoss".to_string() diff --git a/src/sheet/aoz_content.rs b/src/sheet/aoz_content.rs index b927406d..4bbae29a 100644 --- a/src/sheet/aoz_content.rs +++ b/src/sheet/aoz_content.rs @@ -1,7 +1,7 @@ use crate::error::PopulateError; -use std::result::Result; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for AOZContent { fn name() -> String { "AOZContent".to_string() @@ -18,12 +18,15 @@ pub struct AOZContent { pub r#act1_fight_type: u8, pub r#act1: u16, pub r#arena_type1: u8, + pub r#unknown5: u16, pub r#act2_fight_type: u8, pub r#act2: u16, pub r#arena_type2: u8, + pub r#unknown9: u16, pub r#act3_fight_type: u8, pub r#act3: u16, pub r#arena_type3: u8, + pub r#unknown13: u16, pub r#content_entry: u32, pub r#order: u8, pub r#gil_reward: u16, @@ -38,17 +41,20 @@ impl AOZContent { r#act1_fight_type: row.field(2usize + offset)?.into_u8()?, r#act1: row.field(3usize + offset)?.into_u16()?, r#arena_type1: row.field(4usize + offset)?.into_u8()?, - r#act2_fight_type: row.field(5usize + offset)?.into_u8()?, - r#act2: row.field(6usize + offset)?.into_u16()?, - r#arena_type2: row.field(7usize + offset)?.into_u8()?, - r#act3_fight_type: row.field(8usize + offset)?.into_u8()?, - r#act3: row.field(9usize + offset)?.into_u16()?, - r#arena_type3: row.field(10usize + offset)?.into_u8()?, - r#content_entry: row.field(11usize + offset)?.into_u32()?, - r#order: row.field(12usize + offset)?.into_u8()?, - r#gil_reward: row.field(13usize + offset)?.into_u16()?, - r#allied_seals_reward: row.field(14usize + offset)?.into_u16()?, - r#tomestones_reward: row.field(15usize + offset)?.into_u16()?, + r#unknown5: row.field(5usize + offset)?.into_u16()?, + r#act2_fight_type: row.field(6usize + offset)?.into_u8()?, + r#act2: row.field(7usize + offset)?.into_u16()?, + r#arena_type2: row.field(8usize + offset)?.into_u8()?, + r#unknown9: row.field(9usize + offset)?.into_u16()?, + r#act3_fight_type: row.field(10usize + offset)?.into_u8()?, + r#act3: row.field(11usize + offset)?.into_u16()?, + r#arena_type3: row.field(12usize + offset)?.into_u8()?, + r#unknown13: row.field(13usize + offset)?.into_u16()?, + r#content_entry: row.field(14usize + offset)?.into_u32()?, + r#order: row.field(15usize + offset)?.into_u8()?, + r#gil_reward: row.field(16usize + offset)?.into_u16()?, + r#allied_seals_reward: row.field(17usize + offset)?.into_u16()?, + r#tomestones_reward: row.field(18usize + offset)?.into_u16()?, }) } } diff --git a/src/sheet/aoz_content_briefing_b_npc.rs b/src/sheet/aoz_content_briefing_b_npc.rs index 55d4588c..1d14b809 100644 --- a/src/sheet/aoz_content_briefing_b_npc.rs +++ b/src/sheet/aoz_content_briefing_b_npc.rs @@ -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 AOZContentBriefingBNpc { fn name() -> String { diff --git a/src/sheet/aoz_content_briefing_object.rs b/src/sheet/aoz_content_briefing_object.rs new file mode 100644 index 00000000..e5c76994 --- /dev/null +++ b/src/sheet/aoz_content_briefing_object.rs @@ -0,0 +1,26 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; +impl MetadataAdapter for AOZContentBriefingObject { + fn name() -> String { + "AOZContentBriefingObject".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(AOZContentBriefingObject::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct AOZContentBriefingObject { + pub r#icon: u32, + pub r#unknown1: u16, +} +impl AOZContentBriefingObject { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#icon: row.field(0usize + offset)?.into_u32()?, + r#unknown1: row.field(1usize + offset)?.into_u16()?, + }) + } +} diff --git a/src/sheet/aoz_report.rs b/src/sheet/aoz_report.rs index c906c5b3..132a461d 100644 --- a/src/sheet/aoz_report.rs +++ b/src/sheet/aoz_report.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; -use std::result::Result; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for AOZReport { fn name() -> String { "AOZReport".to_string() diff --git a/src/sheet/aoz_score.rs b/src/sheet/aoz_score.rs index 47d8ab4b..2bd829cb 100644 --- a/src/sheet/aoz_score.rs +++ b/src/sheet/aoz_score.rs @@ -1,8 +1,8 @@ -use std::result::Result; -use ironworks::sestring::SeString; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for AOZScore { fn name() -> String { "AOZScore".to_string() diff --git a/src/sheet/aquarium_fish.rs b/src/sheet/aquarium_fish.rs index e338116b..2b490ac9 100644 --- a/src/sheet/aquarium_fish.rs +++ b/src/sheet/aquarium_fish.rs @@ -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 AquariumFish { fn name() -> String { "AquariumFish".to_string() @@ -16,6 +16,7 @@ pub struct AquariumFish { pub r#aquarium_water: u8, pub r#size: u8, pub r#item: u32, + pub r#unknown3: u16, } impl AquariumFish { pub fn populate(row: &Row, offset: usize) -> Result { @@ -23,6 +24,7 @@ impl AquariumFish { r#aquarium_water: row.field(0usize + offset)?.into_u8()?, r#size: row.field(1usize + offset)?.into_u8()?, r#item: row.field(2usize + offset)?.into_u32()?, + r#unknown3: row.field(3usize + offset)?.into_u16()?, }) } } diff --git a/src/sheet/aquarium_water.rs b/src/sheet/aquarium_water.rs index c96c8c67..ee99676f 100644 --- a/src/sheet/aquarium_water.rs +++ b/src/sheet/aquarium_water.rs @@ -1,8 +1,8 @@ -use std::result::Result; -use ironworks::sestring::SeString; -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for AquariumWater { fn name() -> String { "AquariumWater".to_string() diff --git a/src/sheet/archive_item.rs b/src/sheet/archive_item.rs index a4ecf771..fc0b70c9 100644 --- a/src/sheet/archive_item.rs +++ b/src/sheet/archive_item.rs @@ -1,7 +1,7 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; use ironworks::excel::Row; -use crate::error::PopulateError; +use std::result::Result; impl MetadataAdapter for ArchiveItem { fn name() -> String { "ArchiveItem".to_string() @@ -12,9 +12,17 @@ impl MetadataAdapter for ArchiveItem { } } #[derive(Debug)] -pub struct ArchiveItem {} +pub struct ArchiveItem { + pub r#unknown0: i32, + pub r#unknown1: u16, + pub r#unknown2: bool, +} impl ArchiveItem { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_i32()?, + r#unknown1: row.field(1usize + offset)?.into_u16()?, + r#unknown2: row.field(2usize + offset)?.into_bool()?, + }) } } diff --git a/src/sheet/array_event_handler.rs b/src/sheet/array_event_handler.rs index 7c6be1c1..1e51e8d0 100644 --- a/src/sheet/array_event_handler.rs +++ b/src/sheet/array_event_handler.rs @@ -1,9 +1,9 @@ -use std::vec::Vec; -use crate::utility::read_array; -use std::result::Result; -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use crate::utility::read_array; +use ironworks::excel::Row; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for ArrayEventHandler { fn name() -> String { "ArrayEventHandler".to_string() diff --git a/src/sheet/attack_type.rs b/src/sheet/attack_type.rs index 41a10207..7abf0992 100644 --- a/src/sheet/attack_type.rs +++ b/src/sheet/attack_type.rs @@ -1,8 +1,8 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; -use ironworks::sestring::SeString; use ironworks::excel::Row; -use crate::error::PopulateError; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for AttackType { fn name() -> String { "AttackType".to_string() diff --git a/src/sheet/attract.rs b/src/sheet/attract.rs index 7bf72193..545d5671 100644 --- a/src/sheet/attract.rs +++ b/src/sheet/attract.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; use crate::error::PopulateError; -use std::result::Result; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for Attract { fn name() -> String { "Attract".to_string() diff --git a/src/sheet/b_npc_announce_icon.rs b/src/sheet/b_npc_announce_icon.rs index 153afbb8..eb90d1da 100644 --- a/src/sheet/b_npc_announce_icon.rs +++ b/src/sheet/b_npc_announce_icon.rs @@ -1,6 +1,6 @@ use crate::error::PopulateError; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use std::result::Result; impl MetadataAdapter for BNpcAnnounceIcon { fn name() -> String { diff --git a/src/sheet/b_npc_base.rs b/src/sheet/b_npc_base.rs index 304a75fb..2a709427 100644 --- a/src/sheet/b_npc_base.rs +++ b/src/sheet/b_npc_base.rs @@ -1,7 +1,7 @@ -use std::result::Result; -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 BNpcBase { fn name() -> String { "BNpcBase".to_string() @@ -25,11 +25,20 @@ pub struct BNpcBase { pub r#se_pack: u8, pub r#unknown10: bool, pub r#array_event_handler: i32, + pub r#unknown12: u8, pub r#b_npc_parts: u8, - pub r#unknown13: u8, pub r#unknown14: u8, + pub r#unknown15: bool, pub r#is_target_line: bool, pub r#is_display_level: bool, + pub r#unknown18: bool, + pub r#unknown19: u8, + pub r#unknown20: u8, + pub r#unknown21: u8, + pub r#unknown22: u16, + pub r#unknown23: u8, + pub r#unknown24: bool, + pub r#unknown25: bool, } impl BNpcBase { pub fn populate(row: &Row, offset: usize) -> Result { @@ -46,11 +55,20 @@ impl BNpcBase { r#se_pack: row.field(9usize + offset)?.into_u8()?, r#unknown10: row.field(10usize + offset)?.into_bool()?, r#array_event_handler: row.field(11usize + offset)?.into_i32()?, - r#b_npc_parts: row.field(12usize + offset)?.into_u8()?, - r#unknown13: row.field(13usize + offset)?.into_u8()?, + r#unknown12: row.field(12usize + offset)?.into_u8()?, + r#b_npc_parts: row.field(13usize + offset)?.into_u8()?, r#unknown14: row.field(14usize + offset)?.into_u8()?, - r#is_target_line: row.field(15usize + offset)?.into_bool()?, - r#is_display_level: row.field(16usize + offset)?.into_bool()?, + r#unknown15: row.field(15usize + offset)?.into_bool()?, + r#is_target_line: row.field(16usize + offset)?.into_bool()?, + r#is_display_level: row.field(17usize + offset)?.into_bool()?, + r#unknown18: row.field(18usize + offset)?.into_bool()?, + r#unknown19: row.field(19usize + offset)?.into_u8()?, + r#unknown20: row.field(20usize + offset)?.into_u8()?, + r#unknown21: row.field(21usize + offset)?.into_u8()?, + r#unknown22: row.field(22usize + offset)?.into_u16()?, + r#unknown23: row.field(23usize + offset)?.into_u8()?, + r#unknown24: row.field(24usize + offset)?.into_bool()?, + r#unknown25: row.field(25usize + offset)?.into_bool()?, }) } } diff --git a/src/sheet/b_npc_base_pop_vfx.rs b/src/sheet/b_npc_base_pop_vfx.rs index 4c19a2f8..4d225cf0 100644 --- a/src/sheet/b_npc_base_pop_vfx.rs +++ b/src/sheet/b_npc_base_pop_vfx.rs @@ -1,7 +1,7 @@ -use std::result::Result; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for BNpcBasePopVfx { fn name() -> String { "BNpcBasePopVfx".to_string() @@ -12,9 +12,13 @@ impl MetadataAdapter for BNpcBasePopVfx { } } #[derive(Debug)] -pub struct BNpcBasePopVfx {} +pub struct BNpcBasePopVfx { + pub r#unknown0: u16, +} impl BNpcBasePopVfx { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u16()?, + }) } } diff --git a/src/sheet/b_npc_customize.rs b/src/sheet/b_npc_customize.rs index 1df1375b..191c15d2 100644 --- a/src/sheet/b_npc_customize.rs +++ b/src/sheet/b_npc_customize.rs @@ -1,7 +1,7 @@ use crate::error::PopulateError; -use std::result::Result; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for BNpcCustomize { fn name() -> String { "BNpcCustomize".to_string() diff --git a/src/sheet/b_npc_name.rs b/src/sheet/b_npc_name.rs index 6a965ae2..27f26668 100644 --- a/src/sheet/b_npc_name.rs +++ b/src/sheet/b_npc_name.rs @@ -1,8 +1,8 @@ -use std::result::Result; use crate::error::PopulateError; -use ironworks::sestring::SeString; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for BNpcName { fn name() -> String { "BNpcName".to_string() diff --git a/src/sheet/b_npc_parts.rs b/src/sheet/b_npc_parts.rs index 6733b894..38f439a6 100644 --- a/src/sheet/b_npc_parts.rs +++ b/src/sheet/b_npc_parts.rs @@ -1,7 +1,7 @@ -use std::result::Result; -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for BNpcParts { fn name() -> String { "BNpcParts".to_string() @@ -13,120 +13,144 @@ impl MetadataAdapter for BNpcParts { } #[derive(Debug)] pub struct BNpcParts { - pub r#b_npc_base1: u16, - pub r#part_slot1: u8, - pub r#unknown2: bool, + pub r#b_npc_base1: bool, + pub r#part_slot1: u16, + pub r#unknown2: u8, pub r#unknown3: bool, pub r#unknown4: bool, pub r#unknown5: bool, - pub r#x1: f32, + pub r#x1: bool, pub r#y1: f32, pub r#z1: f32, - pub r#unknown9: i16, - pub r#scale1: f32, - pub r#b_npc_base2: u16, - pub r#part_slot2: u8, - pub r#unknown13: bool, + pub r#unknown9: f32, + pub r#scale1: i16, + pub r#b_npc_base2: f32, + pub r#part_slot2: u16, + pub r#unknown13: u8, pub r#unknown14: bool, pub r#unknown15: bool, pub r#unknown16: bool, - pub r#x2: f32, + pub r#x2: bool, pub r#y2: f32, pub r#z2: f32, - pub r#unknown20: i16, - pub r#scale2: f32, - pub r#b_npc_base3: u16, - pub r#part_slot3: u8, - pub r#unknown24: bool, + pub r#unknown20: f32, + pub r#scale2: i16, + pub r#b_npc_base3: f32, + pub r#part_slot3: u16, + pub r#unknown24: u8, pub r#unknown25: bool, pub r#unknown26: bool, pub r#unknown27: bool, - pub r#x3: f32, + pub r#x3: bool, pub r#y3: f32, pub r#z3: f32, - pub r#scale3: i16, - pub r#unknown32: f32, - pub r#b_npc_base4: u16, - pub r#part_slot4: u8, - pub r#unknown35: bool, + pub r#scale3: f32, + pub r#unknown32: i16, + pub r#b_npc_base4: f32, + pub r#part_slot4: u16, + pub r#unknown35: u8, pub r#unknown36: bool, pub r#unknown37: bool, pub r#unknown38: bool, - pub r#x4: f32, + pub r#x4: bool, pub r#y4: f32, pub r#z4: f32, - pub r#unknown42: i16, - pub r#scale4: f32, - pub r#b_npc_base5: u16, - pub r#part_slot5: u8, - pub r#unknown46: bool, + pub r#unknown42: f32, + pub r#scale4: i16, + pub r#b_npc_base5: f32, + pub r#part_slot5: u16, + pub r#unknown46: u8, pub r#unknown47: bool, pub r#unknown48: bool, pub r#unknown49: bool, - pub r#x5: f32, + pub r#x5: bool, pub r#y5: f32, pub r#z5: f32, - pub r#unknown53: i16, - pub r#scale5: f32, + pub r#unknown53: f32, + pub r#scale5: i16, + pub r#unknown55: f32, + pub r#unknown56: u16, + pub r#unknown57: u8, + pub r#unknown58: bool, + pub r#unknown59: bool, + pub r#unknown60: bool, + pub r#unknown61: bool, + pub r#unknown62: f32, + pub r#unknown63: f32, + pub r#unknown64: f32, + pub r#unknown65: i16, + pub r#unknown66: f32, } impl BNpcParts { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { - r#b_npc_base1: row.field(0usize + offset)?.into_u16()?, - r#part_slot1: row.field(1usize + offset)?.into_u8()?, - r#unknown2: row.field(2usize + offset)?.into_bool()?, + r#b_npc_base1: row.field(0usize + offset)?.into_bool()?, + r#part_slot1: row.field(1usize + offset)?.into_u16()?, + r#unknown2: row.field(2usize + offset)?.into_u8()?, r#unknown3: row.field(3usize + offset)?.into_bool()?, r#unknown4: row.field(4usize + offset)?.into_bool()?, r#unknown5: row.field(5usize + offset)?.into_bool()?, - r#x1: row.field(6usize + offset)?.into_f32()?, + r#x1: row.field(6usize + offset)?.into_bool()?, r#y1: row.field(7usize + offset)?.into_f32()?, r#z1: row.field(8usize + offset)?.into_f32()?, - r#unknown9: row.field(9usize + offset)?.into_i16()?, - r#scale1: row.field(10usize + offset)?.into_f32()?, - r#b_npc_base2: row.field(11usize + offset)?.into_u16()?, - r#part_slot2: row.field(12usize + offset)?.into_u8()?, - r#unknown13: row.field(13usize + offset)?.into_bool()?, + r#unknown9: row.field(9usize + offset)?.into_f32()?, + r#scale1: row.field(10usize + offset)?.into_i16()?, + r#b_npc_base2: row.field(11usize + offset)?.into_f32()?, + r#part_slot2: row.field(12usize + offset)?.into_u16()?, + r#unknown13: row.field(13usize + offset)?.into_u8()?, r#unknown14: row.field(14usize + offset)?.into_bool()?, r#unknown15: row.field(15usize + offset)?.into_bool()?, r#unknown16: row.field(16usize + offset)?.into_bool()?, - r#x2: row.field(17usize + offset)?.into_f32()?, + r#x2: row.field(17usize + offset)?.into_bool()?, r#y2: row.field(18usize + offset)?.into_f32()?, r#z2: row.field(19usize + offset)?.into_f32()?, - r#unknown20: row.field(20usize + offset)?.into_i16()?, - r#scale2: row.field(21usize + offset)?.into_f32()?, - r#b_npc_base3: row.field(22usize + offset)?.into_u16()?, - r#part_slot3: row.field(23usize + offset)?.into_u8()?, - r#unknown24: row.field(24usize + offset)?.into_bool()?, + r#unknown20: row.field(20usize + offset)?.into_f32()?, + r#scale2: row.field(21usize + offset)?.into_i16()?, + r#b_npc_base3: row.field(22usize + offset)?.into_f32()?, + r#part_slot3: row.field(23usize + offset)?.into_u16()?, + r#unknown24: row.field(24usize + offset)?.into_u8()?, r#unknown25: row.field(25usize + offset)?.into_bool()?, r#unknown26: row.field(26usize + offset)?.into_bool()?, r#unknown27: row.field(27usize + offset)?.into_bool()?, - r#x3: row.field(28usize + offset)?.into_f32()?, + r#x3: row.field(28usize + offset)?.into_bool()?, r#y3: row.field(29usize + offset)?.into_f32()?, r#z3: row.field(30usize + offset)?.into_f32()?, - r#scale3: row.field(31usize + offset)?.into_i16()?, - r#unknown32: row.field(32usize + offset)?.into_f32()?, - r#b_npc_base4: row.field(33usize + offset)?.into_u16()?, - r#part_slot4: row.field(34usize + offset)?.into_u8()?, - r#unknown35: row.field(35usize + offset)?.into_bool()?, + r#scale3: row.field(31usize + offset)?.into_f32()?, + r#unknown32: row.field(32usize + offset)?.into_i16()?, + r#b_npc_base4: row.field(33usize + offset)?.into_f32()?, + r#part_slot4: row.field(34usize + offset)?.into_u16()?, + r#unknown35: row.field(35usize + offset)?.into_u8()?, r#unknown36: row.field(36usize + offset)?.into_bool()?, r#unknown37: row.field(37usize + offset)?.into_bool()?, r#unknown38: row.field(38usize + offset)?.into_bool()?, - r#x4: row.field(39usize + offset)?.into_f32()?, + r#x4: row.field(39usize + offset)?.into_bool()?, r#y4: row.field(40usize + offset)?.into_f32()?, r#z4: row.field(41usize + offset)?.into_f32()?, - r#unknown42: row.field(42usize + offset)?.into_i16()?, - r#scale4: row.field(43usize + offset)?.into_f32()?, - r#b_npc_base5: row.field(44usize + offset)?.into_u16()?, - r#part_slot5: row.field(45usize + offset)?.into_u8()?, - r#unknown46: row.field(46usize + offset)?.into_bool()?, + r#unknown42: row.field(42usize + offset)?.into_f32()?, + r#scale4: row.field(43usize + offset)?.into_i16()?, + r#b_npc_base5: row.field(44usize + offset)?.into_f32()?, + r#part_slot5: row.field(45usize + offset)?.into_u16()?, + r#unknown46: row.field(46usize + offset)?.into_u8()?, r#unknown47: row.field(47usize + offset)?.into_bool()?, r#unknown48: row.field(48usize + offset)?.into_bool()?, r#unknown49: row.field(49usize + offset)?.into_bool()?, - r#x5: row.field(50usize + offset)?.into_f32()?, + r#x5: row.field(50usize + offset)?.into_bool()?, r#y5: row.field(51usize + offset)?.into_f32()?, r#z5: row.field(52usize + offset)?.into_f32()?, - r#unknown53: row.field(53usize + offset)?.into_i16()?, - r#scale5: row.field(54usize + offset)?.into_f32()?, + r#unknown53: row.field(53usize + offset)?.into_f32()?, + r#scale5: row.field(54usize + offset)?.into_i16()?, + r#unknown55: row.field(55usize + offset)?.into_f32()?, + r#unknown56: row.field(56usize + offset)?.into_u16()?, + r#unknown57: row.field(57usize + offset)?.into_u8()?, + r#unknown58: row.field(58usize + offset)?.into_bool()?, + r#unknown59: row.field(59usize + offset)?.into_bool()?, + r#unknown60: row.field(60usize + offset)?.into_bool()?, + r#unknown61: row.field(61usize + offset)?.into_bool()?, + r#unknown62: row.field(62usize + offset)?.into_f32()?, + r#unknown63: row.field(63usize + offset)?.into_f32()?, + r#unknown64: row.field(64usize + offset)?.into_f32()?, + r#unknown65: row.field(65usize + offset)?.into_i16()?, + r#unknown66: row.field(66usize + offset)?.into_f32()?, }) } } diff --git a/src/sheet/b_npc_state.rs b/src/sheet/b_npc_state.rs index b7bb16e1..11a533df 100644 --- a/src/sheet/b_npc_state.rs +++ b/src/sheet/b_npc_state.rs @@ -1,7 +1,7 @@ -use std::result::Result; -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 BNpcState { fn name() -> String { "BNpcState".to_string() @@ -27,6 +27,7 @@ pub struct BNpcState { pub r#scale: f32, pub r#unknown12: u8, pub r#loop_timeline: i32, + pub r#unknown14: bool, } impl BNpcState { pub fn populate(row: &Row, offset: usize) -> Result { @@ -45,6 +46,7 @@ impl BNpcState { r#scale: row.field(11usize + offset)?.into_f32()?, r#unknown12: row.field(12usize + offset)?.into_u8()?, r#loop_timeline: row.field(13usize + offset)?.into_i32()?, + r#unknown14: row.field(14usize + offset)?.into_bool()?, }) } } diff --git a/src/sheet/backlight_color.rs b/src/sheet/backlight_color.rs index 130545dc..00d213cd 100644 --- a/src/sheet/backlight_color.rs +++ b/src/sheet/backlight_color.rs @@ -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 BacklightColor { fn name() -> String { "BacklightColor".to_string() diff --git a/src/sheet/ballista.rs b/src/sheet/ballista.rs index dc401802..78536be8 100644 --- a/src/sheet/ballista.rs +++ b/src/sheet/ballista.rs @@ -1,7 +1,7 @@ -use std::result::Result; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for Ballista { fn name() -> String { "Ballista".to_string() diff --git a/src/sheet/balloon.rs b/src/sheet/balloon.rs index 553c1300..669978c4 100644 --- a/src/sheet/balloon.rs +++ b/src/sheet/balloon.rs @@ -1,6 +1,6 @@ use crate::error::PopulateError; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use ironworks::sestring::SeString; use std::result::Result; impl MetadataAdapter for Balloon { diff --git a/src/sheet/banner_bg.rs b/src/sheet/banner_bg.rs index 8dbbc4eb..ecf1efb0 100644 --- a/src/sheet/banner_bg.rs +++ b/src/sheet/banner_bg.rs @@ -1,8 +1,8 @@ -use ironworks::sestring::SeString; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; use ironworks::excel::Row; -use crate::error::PopulateError; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for BannerBg { fn name() -> String { "BannerBg".to_string() @@ -16,7 +16,11 @@ impl MetadataAdapter for BannerBg { pub struct BannerBg { pub r#image: i32, pub r#icon: i32, + pub r#unknown2: u8, pub r#unlock_condition: u16, + pub r#unknown4: u16, + pub r#unknown5: u16, + pub r#unknown6: u16, pub r#sort_key: u16, pub r#name: SeString, } @@ -25,9 +29,13 @@ impl BannerBg { Result::Ok(Self { r#image: row.field(0usize + offset)?.into_i32()?, r#icon: row.field(1usize + offset)?.into_i32()?, - r#unlock_condition: row.field(2usize + offset)?.into_u16()?, - r#sort_key: row.field(3usize + offset)?.into_u16()?, - r#name: row.field(4usize + offset)?.into_string()?, + r#unknown2: row.field(2usize + offset)?.into_u8()?, + r#unlock_condition: row.field(3usize + offset)?.into_u16()?, + r#unknown4: row.field(4usize + offset)?.into_u16()?, + r#unknown5: row.field(5usize + offset)?.into_u16()?, + r#unknown6: row.field(6usize + offset)?.into_u16()?, + r#sort_key: row.field(7usize + offset)?.into_u16()?, + r#name: row.field(8usize + offset)?.into_string()?, }) } } diff --git a/src/sheet/banner_condition.rs b/src/sheet/banner_condition.rs index 6d7cc4df..dec32e9b 100644 --- a/src/sheet/banner_condition.rs +++ b/src/sheet/banner_condition.rs @@ -1,7 +1,10 @@ -use std::result::Result; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use crate::utility::read_array; use ironworks::excel::Row; -use crate::error::PopulateError; +use std::convert::Infallible; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for BannerCondition { fn name() -> String { "BannerCondition".to_string() @@ -14,25 +17,32 @@ impl MetadataAdapter for BannerCondition { #[derive(Debug)] pub struct BannerCondition { pub r#unlock_type1: u8, - pub r#unlock_criteria1: u32, + pub r#unlock_criteria1: Vec, pub r#unlock_type2: u32, - pub r#unlock_criteria2: u32, + pub r#unlock_criteria2: u8, pub r#unlock_criteria3: u32, - pub r#unlock_criteria4: u32, - pub r#has_prerequisite: u32, - pub r#prerequisite: u8, + pub r#unlock_criteria4: u8, + pub r#prerequisite_type: bool, + pub r#prerequisite: Option, + pub r#unlock_hint: Option, } impl BannerCondition { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#unlock_type1: row.field(0usize + offset)?.into_u8()?, - r#unlock_criteria1: row.field(1usize + offset)?.into_u32()?, - r#unlock_type2: row.field(2usize + offset)?.into_u32()?, - r#unlock_criteria2: row.field(3usize + offset)?.into_u32()?, - r#unlock_criteria3: row.field(4usize + offset)?.into_u32()?, - r#unlock_criteria4: row.field(5usize + offset)?.into_u32()?, - r#has_prerequisite: row.field(6usize + offset)?.into_u32()?, - r#prerequisite: row.field(7usize + offset)?.into_u8()?, + r#unlock_criteria1: read_array( + offset, + 6usize, + 1usize, + |offset| { Result::Ok(row.field(1usize + offset)?.into_u32()?) }, + )?, + r#unlock_type2: row.field(7usize + offset)?.into_u32()?, + r#unlock_criteria2: row.field(8usize + offset)?.into_u8()?, + r#unlock_criteria3: row.field(9usize + offset)?.into_u32()?, + r#unlock_criteria4: row.field(10usize + offset)?.into_u8()?, + r#prerequisite_type: row.field(11usize + offset)?.into_bool()?, + r#prerequisite: None, + r#unlock_hint: None, }) } } diff --git a/src/sheet/banner_decoration.rs b/src/sheet/banner_decoration.rs index 25510225..9b2830a3 100644 --- a/src/sheet/banner_decoration.rs +++ b/src/sheet/banner_decoration.rs @@ -1,8 +1,8 @@ -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; +use ironworks::excel::Row; use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for BannerDecoration { fn name() -> String { "BannerDecoration".to_string() @@ -16,18 +16,26 @@ impl MetadataAdapter for BannerDecoration { pub struct BannerDecoration { pub r#image: i32, pub r#icon: i32, + pub r#unknown2: u8, pub r#unlock_condition: u16, + pub r#unknown4: u16, + pub r#unknown5: u16, pub r#sort_key: u16, - pub r#name: SeString, + pub r#name: u16, + pub r#unknown8: SeString, } impl BannerDecoration { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#image: row.field(0usize + offset)?.into_i32()?, r#icon: row.field(1usize + offset)?.into_i32()?, - r#unlock_condition: row.field(2usize + offset)?.into_u16()?, - r#sort_key: row.field(3usize + offset)?.into_u16()?, - r#name: row.field(4usize + offset)?.into_string()?, + r#unknown2: row.field(2usize + offset)?.into_u8()?, + r#unlock_condition: row.field(3usize + offset)?.into_u16()?, + r#unknown4: row.field(4usize + offset)?.into_u16()?, + r#unknown5: row.field(5usize + offset)?.into_u16()?, + r#sort_key: row.field(6usize + offset)?.into_u16()?, + r#name: row.field(7usize + offset)?.into_u16()?, + r#unknown8: row.field(8usize + offset)?.into_string()?, }) } } diff --git a/src/sheet/banner_design_preset.rs b/src/sheet/banner_design_preset.rs index 787ed598..9ba3d729 100644 --- a/src/sheet/banner_design_preset.rs +++ b/src/sheet/banner_design_preset.rs @@ -1,8 +1,8 @@ -use ironworks::sestring::SeString; -use crate::metadata::MetadataAdapter; -use std::result::Result; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for BannerDesignPreset { fn name() -> String { "BannerDesignPreset".to_string() diff --git a/src/sheet/banner_facial.rs b/src/sheet/banner_facial.rs index dcd59ded..3cdd5794 100644 --- a/src/sheet/banner_facial.rs +++ b/src/sheet/banner_facial.rs @@ -1,7 +1,7 @@ use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for BannerFacial { fn name() -> String { "BannerFacial".to_string() @@ -15,14 +15,20 @@ impl MetadataAdapter for BannerFacial { pub struct BannerFacial { pub r#emote: u16, pub r#unlock_condition: u16, - pub r#sort_key: u8, + pub r#unknown2: u16, + pub r#unknown3: u16, + pub r#sort_key: u16, + pub r#unknown5: u8, } impl BannerFacial { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#emote: row.field(0usize + offset)?.into_u16()?, r#unlock_condition: row.field(1usize + offset)?.into_u16()?, - r#sort_key: row.field(2usize + offset)?.into_u8()?, + r#unknown2: row.field(2usize + offset)?.into_u16()?, + r#unknown3: row.field(3usize + offset)?.into_u16()?, + r#sort_key: row.field(4usize + offset)?.into_u16()?, + r#unknown5: row.field(5usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/banner_frame.rs b/src/sheet/banner_frame.rs index 2a92680e..3505353f 100644 --- a/src/sheet/banner_frame.rs +++ b/src/sheet/banner_frame.rs @@ -1,7 +1,7 @@ -use ironworks::sestring::SeString; -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; use std::result::Result; impl MetadataAdapter for BannerFrame { fn name() -> String { @@ -16,18 +16,26 @@ impl MetadataAdapter for BannerFrame { pub struct BannerFrame { pub r#image: i32, pub r#icon: i32, + pub r#unknown2: u8, pub r#unlock_condition: u16, + pub r#unknown4: u16, + pub r#unknown5: u16, pub r#sort_key: u16, - pub r#name: SeString, + pub r#name: u16, + pub r#unknown8: SeString, } impl BannerFrame { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#image: row.field(0usize + offset)?.into_i32()?, r#icon: row.field(1usize + offset)?.into_i32()?, - r#unlock_condition: row.field(2usize + offset)?.into_u16()?, - r#sort_key: row.field(3usize + offset)?.into_u16()?, - r#name: row.field(4usize + offset)?.into_string()?, + r#unknown2: row.field(2usize + offset)?.into_u8()?, + r#unlock_condition: row.field(3usize + offset)?.into_u16()?, + r#unknown4: row.field(4usize + offset)?.into_u16()?, + r#unknown5: row.field(5usize + offset)?.into_u16()?, + r#sort_key: row.field(6usize + offset)?.into_u16()?, + r#name: row.field(7usize + offset)?.into_u16()?, + r#unknown8: row.field(8usize + offset)?.into_string()?, }) } } diff --git a/src/sheet/banner_obtain_hint_type.rs b/src/sheet/banner_obtain_hint_type.rs index 118f94c5..8d067f43 100644 --- a/src/sheet/banner_obtain_hint_type.rs +++ b/src/sheet/banner_obtain_hint_type.rs @@ -1,6 +1,7 @@ use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use ironworks::sestring::SeString; use std::result::Result; impl MetadataAdapter for BannerObtainHintType { fn name() -> String { @@ -12,9 +13,13 @@ impl MetadataAdapter for BannerObtainHintType { } } #[derive(Debug)] -pub struct BannerObtainHintType {} +pub struct BannerObtainHintType { + pub r#text: SeString, +} impl BannerObtainHintType { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#text: row.field(0usize + offset)?.into_string()?, + }) } } diff --git a/src/sheet/banner_preset.rs b/src/sheet/banner_preset.rs index bbcfce23..0e77b93b 100644 --- a/src/sheet/banner_preset.rs +++ b/src/sheet/banner_preset.rs @@ -1,6 +1,6 @@ use crate::error::PopulateError; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use std::result::Result; impl MetadataAdapter for BannerPreset { fn name() -> String { @@ -12,9 +12,63 @@ impl MetadataAdapter for BannerPreset { } } #[derive(Debug)] -pub struct BannerPreset {} +pub struct BannerPreset { + pub r#unknown0: f32, + pub r#unknown1: f32, + pub r#unknown2: f32, + pub r#unknown3: f32, + pub r#unknown4: f32, + pub r#unknown5: f32, + pub r#unknown6: i16, + pub r#unknown7: u8, + pub r#unknown8: u16, + pub r#unknown9: f32, + pub r#unknown10: i32, + pub r#unknown11: f32, + pub r#unknown12: f32, + pub r#unknown13: f32, + pub r#unknown14: f32, + pub r#unknown15: u8, + pub r#unknown16: u8, + pub r#unknown17: u8, + pub r#unknown18: u8, + pub r#unknown19: u8, + pub r#unknown20: i16, + pub r#unknown21: i16, + pub r#unknown22: u8, + pub r#unknown23: u8, + pub r#unknown24: u8, + pub r#unknown25: u8, +} impl BannerPreset { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_f32()?, + r#unknown1: row.field(1usize + offset)?.into_f32()?, + r#unknown2: row.field(2usize + offset)?.into_f32()?, + r#unknown3: row.field(3usize + offset)?.into_f32()?, + r#unknown4: row.field(4usize + offset)?.into_f32()?, + r#unknown5: row.field(5usize + offset)?.into_f32()?, + r#unknown6: row.field(6usize + offset)?.into_i16()?, + r#unknown7: row.field(7usize + offset)?.into_u8()?, + r#unknown8: row.field(8usize + offset)?.into_u16()?, + r#unknown9: row.field(9usize + offset)?.into_f32()?, + r#unknown10: row.field(10usize + offset)?.into_i32()?, + r#unknown11: row.field(11usize + offset)?.into_f32()?, + r#unknown12: row.field(12usize + offset)?.into_f32()?, + r#unknown13: row.field(13usize + offset)?.into_f32()?, + r#unknown14: row.field(14usize + offset)?.into_f32()?, + r#unknown15: row.field(15usize + offset)?.into_u8()?, + r#unknown16: row.field(16usize + offset)?.into_u8()?, + r#unknown17: row.field(17usize + offset)?.into_u8()?, + r#unknown18: row.field(18usize + offset)?.into_u8()?, + r#unknown19: row.field(19usize + offset)?.into_u8()?, + r#unknown20: row.field(20usize + offset)?.into_i16()?, + r#unknown21: row.field(21usize + offset)?.into_i16()?, + r#unknown22: row.field(22usize + offset)?.into_u8()?, + r#unknown23: row.field(23usize + offset)?.into_u8()?, + r#unknown24: row.field(24usize + offset)?.into_u8()?, + r#unknown25: row.field(25usize + offset)?.into_u8()?, + }) } } diff --git a/src/sheet/banner_timeline.rs b/src/sheet/banner_timeline.rs index b215f34e..374aea7e 100644 --- a/src/sheet/banner_timeline.rs +++ b/src/sheet/banner_timeline.rs @@ -1,8 +1,8 @@ -use std::result::Result; use crate::error::PopulateError; -use ironworks::sestring::SeString; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for BannerTimeline { fn name() -> String { "BannerTimeline".to_string() @@ -19,9 +19,12 @@ pub struct BannerTimeline { pub r#accept_class_job_category: u8, pub r#category: u8, pub r#unlock_condition: u16, + pub r#unknown5: u16, + pub r#unknown6: u16, pub r#sort_key: u16, - pub r#icon: i32, - pub r#name: SeString, + pub r#icon: u16, + pub r#name: i32, + pub r#unknown10: SeString, } impl BannerTimeline { pub fn populate(row: &Row, offset: usize) -> Result { @@ -31,9 +34,12 @@ impl BannerTimeline { r#accept_class_job_category: row.field(2usize + offset)?.into_u8()?, r#category: row.field(3usize + offset)?.into_u8()?, r#unlock_condition: row.field(4usize + offset)?.into_u16()?, - r#sort_key: row.field(5usize + offset)?.into_u16()?, - r#icon: row.field(6usize + offset)?.into_i32()?, - r#name: row.field(7usize + offset)?.into_string()?, + r#unknown5: row.field(5usize + offset)?.into_u16()?, + r#unknown6: row.field(6usize + offset)?.into_u16()?, + r#sort_key: row.field(7usize + offset)?.into_u16()?, + r#icon: row.field(8usize + offset)?.into_u16()?, + r#name: row.field(9usize + offset)?.into_i32()?, + r#unknown10: row.field(10usize + offset)?.into_string()?, }) } } diff --git a/src/sheet/base_param.rs b/src/sheet/base_param.rs index ba14c18e..c0c69a4c 100644 --- a/src/sheet/base_param.rs +++ b/src/sheet/base_param.rs @@ -1,10 +1,10 @@ -use std::result::Result; -use std::vec::Vec; -use crate::utility::read_array; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use ironworks::sestring::SeString; +use crate::utility::read_array; use ironworks::excel::Row; -use crate::error::PopulateError; +use ironworks::sestring::SeString; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for BaseParam { fn name() -> String { "BaseParam".to_string() @@ -41,7 +41,10 @@ pub struct BaseParam { pub r#head_chest_hands_legs_feet_percent: u16, pub r#chest_legs_gloves_percent: u16, pub r#chest_legs_feet_percent: u16, + pub r#unknown25: u16, pub r#meld_param: Vec, + pub r#unknown39: u8, + pub r#unknown40: bool, } impl BaseParam { pub fn populate(row: &Row, offset: usize) -> Result { @@ -73,12 +76,15 @@ impl BaseParam { .into_u16()?, r#chest_legs_gloves_percent: row.field(23usize + offset)?.into_u16()?, r#chest_legs_feet_percent: row.field(24usize + offset)?.into_u16()?, + r#unknown25: row.field(25usize + offset)?.into_u16()?, r#meld_param: read_array( offset, 13usize, 1usize, - |offset| { Result::Ok(row.field(25usize + offset)?.into_u16()?) }, + |offset| { Result::Ok(row.field(26usize + offset)?.into_u16()?) }, )?, + r#unknown39: row.field(39usize + offset)?.into_u8()?, + r#unknown40: row.field(40usize + offset)?.into_bool()?, }) } } diff --git a/src/sheet/battle_leve.rs b/src/sheet/battle_leve.rs index f1aec853..1ce17b83 100644 --- a/src/sheet/battle_leve.rs +++ b/src/sheet/battle_leve.rs @@ -1,9 +1,9 @@ -use crate::metadata::MetadataAdapter; -use std::vec::Vec; -use std::result::Result; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use crate::utility::read_array; use ironworks::excel::Row; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for BattleLeve { fn name() -> String { "BattleLeve".to_string() diff --git a/src/sheet/battle_leve_rule.rs b/src/sheet/battle_leve_rule.rs index 0909bad5..e00e2156 100644 --- a/src/sheet/battle_leve_rule.rs +++ b/src/sheet/battle_leve_rule.rs @@ -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 ironworks::excel::Row; -use crate::metadata::MetadataAdapter; impl MetadataAdapter for BattleLeveRule { fn name() -> String { "BattleLeveRule".to_string() diff --git a/src/sheet/beast_rank_bonus.rs b/src/sheet/beast_rank_bonus.rs index ab5a2045..0f297446 100644 --- a/src/sheet/beast_rank_bonus.rs +++ b/src/sheet/beast_rank_bonus.rs @@ -1,9 +1,9 @@ -use std::vec::Vec; -use std::result::Result; use crate::error::PopulateError; -use ironworks::excel::Row; -use crate::utility::read_array; use crate::metadata::MetadataAdapter; +use crate::utility::read_array; +use ironworks::excel::Row; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for BeastRankBonus { fn name() -> String { "BeastRankBonus".to_string() diff --git a/src/sheet/beast_reputation_rank.rs b/src/sheet/beast_reputation_rank.rs index 806dfeb5..26c74754 100644 --- a/src/sheet/beast_reputation_rank.rs +++ b/src/sheet/beast_reputation_rank.rs @@ -1,8 +1,8 @@ -use std::result::Result; -use ironworks::excel::Row; -use ironworks::sestring::SeString; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for BeastReputationRank { fn name() -> String { "BeastReputationRank".to_string() diff --git a/src/sheet/beast_tribe.rs b/src/sheet/beast_tribe.rs index 7dfe372d..71d63b02 100644 --- a/src/sheet/beast_tribe.rs +++ b/src/sheet/beast_tribe.rs @@ -1,8 +1,8 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; use ironworks::excel::Row; -use crate::error::PopulateError; use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for BeastTribe { fn name() -> String { "BeastTribe".to_string() @@ -21,17 +21,19 @@ pub struct BeastTribe { pub r#icon: u32, pub r#max_rank: u8, pub r#expansion: u8, + pub r#unknown7: u32, pub r#currency_item: u32, - pub r#display_order: u8, - pub r#name: SeString, - pub r#adjective: i8, - pub r#plural: SeString, - pub r#possessive_pronoun: i8, + pub r#display_order: u32, + pub r#name: u8, + pub r#adjective: SeString, + pub r#plural: i8, + pub r#possessive_pronoun: SeString, pub r#starts_with_vowel: i8, pub r#pronoun: i8, pub r#article: i8, pub r#def: i8, - pub r#name_relation: SeString, + pub r#name_relation: i8, + pub r#unknown19: SeString, } impl BeastTribe { pub fn populate(row: &Row, offset: usize) -> Result { @@ -43,17 +45,19 @@ impl BeastTribe { r#icon: row.field(4usize + offset)?.into_u32()?, r#max_rank: row.field(5usize + offset)?.into_u8()?, r#expansion: row.field(6usize + offset)?.into_u8()?, - r#currency_item: row.field(7usize + offset)?.into_u32()?, - r#display_order: row.field(8usize + offset)?.into_u8()?, - r#name: row.field(9usize + offset)?.into_string()?, - r#adjective: row.field(10usize + offset)?.into_i8()?, - r#plural: row.field(11usize + offset)?.into_string()?, - r#possessive_pronoun: row.field(12usize + offset)?.into_i8()?, - r#starts_with_vowel: row.field(13usize + offset)?.into_i8()?, - r#pronoun: row.field(14usize + offset)?.into_i8()?, - r#article: row.field(15usize + offset)?.into_i8()?, - r#def: row.field(16usize + offset)?.into_i8()?, - r#name_relation: row.field(17usize + offset)?.into_string()?, + r#unknown7: row.field(7usize + offset)?.into_u32()?, + r#currency_item: row.field(8usize + offset)?.into_u32()?, + r#display_order: row.field(9usize + offset)?.into_u32()?, + r#name: row.field(10usize + offset)?.into_u8()?, + r#adjective: row.field(11usize + offset)?.into_string()?, + r#plural: row.field(12usize + offset)?.into_i8()?, + r#possessive_pronoun: row.field(13usize + offset)?.into_string()?, + r#starts_with_vowel: row.field(14usize + offset)?.into_i8()?, + r#pronoun: row.field(15usize + offset)?.into_i8()?, + r#article: row.field(16usize + offset)?.into_i8()?, + r#def: row.field(17usize + offset)?.into_i8()?, + r#name_relation: row.field(18usize + offset)?.into_i8()?, + r#unknown19: row.field(19usize + offset)?.into_string()?, }) } } diff --git a/src/sheet/behavior.rs b/src/sheet/behavior.rs index e88dceb8..e48fcc3d 100644 --- a/src/sheet/behavior.rs +++ b/src/sheet/behavior.rs @@ -1,7 +1,7 @@ -use std::result::Result; -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 Behavior { fn name() -> String { "Behavior".to_string() @@ -17,15 +17,19 @@ pub struct Behavior { pub r#unknown1: u8, pub r#condition0_target: u8, pub r#condition0_type: u8, - pub r#balloon: i32, + pub r#unknown4: i32, pub r#unknown5: i16, pub r#unknown6: i32, pub r#unknown7: u16, - pub r#unknown8: u16, + pub r#balloon: u16, pub r#condition1_target: u8, pub r#condition1_type: u8, pub r#content_argument0: u32, pub r#content_argument1: u8, + pub r#unknown13: u8, + pub r#unknown14: u8, + pub r#unknown15: u32, + pub r#unknown16: u16, } impl Behavior { pub fn populate(row: &Row, offset: usize) -> Result { @@ -34,15 +38,19 @@ impl Behavior { r#unknown1: row.field(1usize + offset)?.into_u8()?, r#condition0_target: row.field(2usize + offset)?.into_u8()?, r#condition0_type: row.field(3usize + offset)?.into_u8()?, - r#balloon: row.field(4usize + offset)?.into_i32()?, + r#unknown4: row.field(4usize + offset)?.into_i32()?, r#unknown5: row.field(5usize + offset)?.into_i16()?, r#unknown6: row.field(6usize + offset)?.into_i32()?, r#unknown7: row.field(7usize + offset)?.into_u16()?, - r#unknown8: row.field(8usize + offset)?.into_u16()?, + r#balloon: row.field(8usize + offset)?.into_u16()?, r#condition1_target: row.field(9usize + offset)?.into_u8()?, r#condition1_type: row.field(10usize + offset)?.into_u8()?, r#content_argument0: row.field(11usize + offset)?.into_u32()?, r#content_argument1: row.field(12usize + offset)?.into_u8()?, + r#unknown13: row.field(13usize + offset)?.into_u8()?, + r#unknown14: row.field(14usize + offset)?.into_u8()?, + r#unknown15: row.field(15usize + offset)?.into_u32()?, + r#unknown16: row.field(16usize + offset)?.into_u16()?, }) } } diff --git a/src/sheet/behavior_path.rs b/src/sheet/behavior_path.rs index 6ee8ecd1..dd8cf8a2 100644 --- a/src/sheet/behavior_path.rs +++ b/src/sheet/behavior_path.rs @@ -1,7 +1,7 @@ -use std::result::Result; -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 BehaviorPath { fn name() -> String { "BehaviorPath".to_string() diff --git a/src/sheet/benchmark_override_equipment.rs b/src/sheet/benchmark_override_equipment.rs index 8c9225d7..0eb6dd94 100644 --- a/src/sheet/benchmark_override_equipment.rs +++ b/src/sheet/benchmark_override_equipment.rs @@ -1,7 +1,7 @@ use crate::error::PopulateError; -use std::result::Result; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for BenchmarkOverrideEquipment { fn name() -> String { "BenchmarkOverrideEquipment".to_string() diff --git a/src/sheet/bgm.rs b/src/sheet/bgm.rs index 5e06a9c5..d62bdc0c 100644 --- a/src/sheet/bgm.rs +++ b/src/sheet/bgm.rs @@ -1,8 +1,8 @@ -use std::result::Result; -use ironworks::sestring::SeString; use crate::error::PopulateError; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for BGM { fn name() -> String { "BGM".to_string() diff --git a/src/sheet/bgm_fade.rs b/src/sheet/bgm_fade.rs index 619f4176..9daff01a 100644 --- a/src/sheet/bgm_fade.rs +++ b/src/sheet/bgm_fade.rs @@ -1,7 +1,7 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; use ironworks::excel::Row; -use crate::error::PopulateError; +use std::result::Result; impl MetadataAdapter for BGMFade { fn name() -> String { "BGMFade".to_string() diff --git a/src/sheet/bgm_fade_type.rs b/src/sheet/bgm_fade_type.rs index a1ac6c56..2ce4b815 100644 --- a/src/sheet/bgm_fade_type.rs +++ b/src/sheet/bgm_fade_type.rs @@ -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 BGMFadeType { fn name() -> String { "BGMFadeType".to_string() diff --git a/src/sheet/bgm_scene.rs b/src/sheet/bgm_scene.rs index 42957923..4278d806 100644 --- a/src/sheet/bgm_scene.rs +++ b/src/sheet/bgm_scene.rs @@ -1,7 +1,7 @@ -use std::result::Result; -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for BGMScene { fn name() -> String { "BGMScene".to_string() diff --git a/src/sheet/bgm_situation.rs b/src/sheet/bgm_situation.rs index f645fafa..17e6bead 100644 --- a/src/sheet/bgm_situation.rs +++ b/src/sheet/bgm_situation.rs @@ -1,7 +1,7 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; use ironworks::excel::Row; -use crate::error::PopulateError; +use std::result::Result; impl MetadataAdapter for BGMSituation { fn name() -> String { "BGMSituation".to_string() diff --git a/src/sheet/bgm_switch.rs b/src/sheet/bgm_switch.rs index 8955612e..ce9609c5 100644 --- a/src/sheet/bgm_switch.rs +++ b/src/sheet/bgm_switch.rs @@ -1,6 +1,6 @@ use crate::error::PopulateError; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use std::result::Result; impl MetadataAdapter for BGMSwitch { fn name() -> String { diff --git a/src/sheet/bgm_system_define.rs b/src/sheet/bgm_system_define.rs index b80a6a9f..6c365086 100644 --- a/src/sheet/bgm_system_define.rs +++ b/src/sheet/bgm_system_define.rs @@ -1,7 +1,7 @@ -use std::result::Result; -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for BGMSystemDefine { fn name() -> String { "BGMSystemDefine".to_string() diff --git a/src/sheet/booster.rs b/src/sheet/booster.rs index ec250ae2..5aca72e8 100644 --- a/src/sheet/booster.rs +++ b/src/sheet/booster.rs @@ -1,7 +1,7 @@ -use std::result::Result; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for Booster { fn name() -> String { "Booster".to_string() @@ -12,9 +12,21 @@ impl MetadataAdapter for Booster { } } #[derive(Debug)] -pub struct Booster {} +pub struct Booster { + pub r#unknown0: u8, + pub r#unknown1: u32, + pub r#unknown2: u8, + pub r#unknown3: u16, + pub r#unknown4: bool, +} impl Booster { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u8()?, + r#unknown1: row.field(1usize + offset)?.into_u32()?, + r#unknown2: row.field(2usize + offset)?.into_u8()?, + r#unknown3: row.field(3usize + offset)?.into_u16()?, + r#unknown4: row.field(4usize + offset)?.into_bool()?, + }) } } diff --git a/src/sheet/buddy.rs b/src/sheet/buddy.rs index d44b6bb9..eaea2b9a 100644 --- a/src/sheet/buddy.rs +++ b/src/sheet/buddy.rs @@ -1,8 +1,8 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; -use ironworks::sestring::SeString; use ironworks::excel::Row; -use crate::error::PopulateError; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for Buddy { fn name() -> String { "Buddy".to_string() diff --git a/src/sheet/buddy_action.rs b/src/sheet/buddy_action.rs index 8debdc9b..56a81f60 100644 --- a/src/sheet/buddy_action.rs +++ b/src/sheet/buddy_action.rs @@ -1,8 +1,8 @@ -use ironworks::sestring::SeString; -use ironworks::excel::Row; -use std::result::Result; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for BuddyAction { fn name() -> String { "BuddyAction".to_string() diff --git a/src/sheet/buddy_equip.rs b/src/sheet/buddy_equip.rs index 60f08913..2f542133 100644 --- a/src/sheet/buddy_equip.rs +++ b/src/sheet/buddy_equip.rs @@ -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 std::result::Result; impl MetadataAdapter for BuddyEquip { fn name() -> String { "BuddyEquip".to_string() diff --git a/src/sheet/buddy_item.rs b/src/sheet/buddy_item.rs index c821b658..cf38ea25 100644 --- a/src/sheet/buddy_item.rs +++ b/src/sheet/buddy_item.rs @@ -1,7 +1,7 @@ use crate::error::PopulateError; -use std::result::Result; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for BuddyItem { fn name() -> String { "BuddyItem".to_string() diff --git a/src/sheet/buddy_rank.rs b/src/sheet/buddy_rank.rs index 278cb22e..46bce2cc 100644 --- a/src/sheet/buddy_rank.rs +++ b/src/sheet/buddy_rank.rs @@ -1,5 +1,5 @@ -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; use std::result::Result; impl MetadataAdapter for BuddyRank { diff --git a/src/sheet/buddy_skill.rs b/src/sheet/buddy_skill.rs index 288ec8fd..bb3d5c31 100644 --- a/src/sheet/buddy_skill.rs +++ b/src/sheet/buddy_skill.rs @@ -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 BuddySkill { fn name() -> String { "BuddySkill".to_string() diff --git a/src/sheet/cabinet.rs b/src/sheet/cabinet.rs index 083c1ea1..e3b96f81 100644 --- a/src/sheet/cabinet.rs +++ b/src/sheet/cabinet.rs @@ -1,7 +1,7 @@ -use std::result::Result; -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for Cabinet { fn name() -> String { "Cabinet".to_string() @@ -13,16 +13,18 @@ impl MetadataAdapter for Cabinet { } #[derive(Debug)] pub struct Cabinet { - pub r#item: i32, + pub r#item: u32, pub r#order: u16, pub r#category: u8, + pub r#sort_key: u8, } impl Cabinet { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { - r#item: row.field(0usize + offset)?.into_i32()?, + r#item: row.field(0usize + offset)?.into_u32()?, r#order: row.field(1usize + offset)?.into_u16()?, r#category: row.field(2usize + offset)?.into_u8()?, + r#sort_key: row.field(3usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/cabinet_category.rs b/src/sheet/cabinet_category.rs index 5d430082..ca191713 100644 --- a/src/sheet/cabinet_category.rs +++ b/src/sheet/cabinet_category.rs @@ -1,7 +1,7 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; use ironworks::excel::Row; -use crate::error::PopulateError; +use std::result::Result; impl MetadataAdapter for CabinetCategory { fn name() -> String { "CabinetCategory".to_string() @@ -14,6 +14,7 @@ impl MetadataAdapter for CabinetCategory { #[derive(Debug)] pub struct CabinetCategory { pub r#menu_order: u8, + pub r#hide_order: u8, pub r#icon: i32, pub r#category: i32, } @@ -21,8 +22,9 @@ impl CabinetCategory { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#menu_order: row.field(0usize + offset)?.into_u8()?, - r#icon: row.field(1usize + offset)?.into_i32()?, - r#category: row.field(2usize + offset)?.into_i32()?, + r#hide_order: row.field(1usize + offset)?.into_u8()?, + r#icon: row.field(2usize + offset)?.into_i32()?, + r#category: row.field(3usize + offset)?.into_i32()?, }) } } diff --git a/src/sheet/calendar.rs b/src/sheet/calendar.rs index cc0ee1d0..c8025bbb 100644 --- a/src/sheet/calendar.rs +++ b/src/sheet/calendar.rs @@ -1,9 +1,9 @@ -use std::vec::Vec; +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use crate::utility::read_array; use ironworks::excel::Row; -use crate::metadata::MetadataAdapter; use std::result::Result; -use crate::error::PopulateError; +use std::vec::Vec; impl MetadataAdapter for Calendar { fn name() -> String { "Calendar".to_string() diff --git a/src/sheet/carry.rs b/src/sheet/carry.rs index fb418b72..4af20e33 100644 --- a/src/sheet/carry.rs +++ b/src/sheet/carry.rs @@ -1,7 +1,7 @@ -use std::result::Result; -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 Carry { fn name() -> String { "Carry".to_string() @@ -15,12 +15,16 @@ impl MetadataAdapter for Carry { pub struct Carry { pub r#model: u64, pub r#timeline: u8, + pub r#unknown2: u8, + pub r#unknown3: u8, } impl Carry { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#model: row.field(0usize + offset)?.into_u64()?, r#timeline: row.field(1usize + offset)?.into_u8()?, + r#unknown2: row.field(2usize + offset)?.into_u8()?, + r#unknown3: row.field(3usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/channeling.rs b/src/sheet/channeling.rs index 7dbc5bb4..bedba75c 100644 --- a/src/sheet/channeling.rs +++ b/src/sheet/channeling.rs @@ -1,7 +1,7 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use ironworks::sestring::SeString; use ironworks::excel::Row; -use crate::error::PopulateError; +use ironworks::sestring::SeString; use std::result::Result; impl MetadataAdapter for Channeling { fn name() -> String { @@ -16,12 +16,20 @@ impl MetadataAdapter for Channeling { pub struct Channeling { pub r#file: SeString, pub r#width_scale: u8, + pub r#unknown2: bool, + pub r#unknown3: bool, + pub r#unknown4: bool, + pub r#unknown5: bool, } impl Channeling { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#file: row.field(0usize + offset)?.into_string()?, r#width_scale: row.field(1usize + offset)?.into_u8()?, + r#unknown2: row.field(2usize + offset)?.into_bool()?, + r#unknown3: row.field(3usize + offset)?.into_bool()?, + r#unknown4: row.field(4usize + offset)?.into_bool()?, + r#unknown5: row.field(5usize + offset)?.into_bool()?, }) } } diff --git a/src/sheet/chara_card_base.rs b/src/sheet/chara_card_base.rs index 2a7630ad..aae80676 100644 --- a/src/sheet/chara_card_base.rs +++ b/src/sheet/chara_card_base.rs @@ -1,8 +1,8 @@ -use ironworks::sestring::SeString; -use ironworks::excel::Row; -use std::result::Result; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for CharaCardBase { fn name() -> String { "CharaCardBase".to_string() @@ -20,8 +20,12 @@ pub struct CharaCardBase { pub r#unknown3: bool, pub r#unknown4: u8, pub r#unlock_condition: u16, - pub r#sort_key: u16, - pub r#name: SeString, + pub r#unknown6: u16, + pub r#unknown7: u16, + pub r#unknown8: u16, + pub r#sort_key: u8, + pub r#name: u16, + pub r#unknown11: SeString, } impl CharaCardBase { pub fn populate(row: &Row, offset: usize) -> Result { @@ -32,8 +36,12 @@ impl CharaCardBase { r#unknown3: row.field(3usize + offset)?.into_bool()?, r#unknown4: row.field(4usize + offset)?.into_u8()?, r#unlock_condition: row.field(5usize + offset)?.into_u16()?, - r#sort_key: row.field(6usize + offset)?.into_u16()?, - r#name: row.field(7usize + offset)?.into_string()?, + 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#sort_key: row.field(9usize + offset)?.into_u8()?, + r#name: row.field(10usize + offset)?.into_u16()?, + r#unknown11: row.field(11usize + offset)?.into_string()?, }) } } diff --git a/src/sheet/chara_card_decoration.rs b/src/sheet/chara_card_decoration.rs index 6352379f..719ef4d4 100644 --- a/src/sheet/chara_card_decoration.rs +++ b/src/sheet/chara_card_decoration.rs @@ -1,8 +1,8 @@ -use ironworks::sestring::SeString; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; use ironworks::excel::Row; -use crate::error::PopulateError; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for CharaCardDecoration { fn name() -> String { "CharaCardDecoration".to_string() @@ -15,21 +15,31 @@ impl MetadataAdapter for CharaCardDecoration { #[derive(Debug)] pub struct CharaCardDecoration { pub r#category: u8, + pub r#sub_type: u8, pub r#image: i32, - pub r#unknown2: u8, + pub r#unknown3: u8, pub r#unlock_condition: u16, - pub r#sort_key: u16, - pub r#name: SeString, + pub r#unknown5: u16, + pub r#unknown6: u16, + pub r#unknown7: u16, + pub r#sort_key: u8, + pub r#name: u16, + pub r#unknown10: SeString, } impl CharaCardDecoration { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#category: row.field(0usize + offset)?.into_u8()?, - r#image: row.field(1usize + offset)?.into_i32()?, - r#unknown2: row.field(2usize + offset)?.into_u8()?, - r#unlock_condition: row.field(3usize + offset)?.into_u16()?, - r#sort_key: row.field(4usize + offset)?.into_u16()?, - r#name: row.field(5usize + offset)?.into_string()?, + r#sub_type: row.field(1usize + offset)?.into_u8()?, + r#image: row.field(2usize + offset)?.into_i32()?, + r#unknown3: row.field(3usize + offset)?.into_u8()?, + r#unlock_condition: row.field(4usize + offset)?.into_u16()?, + r#unknown5: row.field(5usize + offset)?.into_u16()?, + r#unknown6: row.field(6usize + offset)?.into_u16()?, + r#unknown7: row.field(7usize + offset)?.into_u16()?, + r#sort_key: row.field(8usize + offset)?.into_u8()?, + r#name: row.field(9usize + offset)?.into_u16()?, + r#unknown10: row.field(10usize + offset)?.into_string()?, }) } } diff --git a/src/sheet/chara_card_design_category.rs b/src/sheet/chara_card_design_category.rs new file mode 100644 index 00000000..6cd46628 --- /dev/null +++ b/src/sheet/chara_card_design_category.rs @@ -0,0 +1,27 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; +impl MetadataAdapter for CharaCardDesignCategory { + fn name() -> String { + "CharaCardDesignCategory".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(CharaCardDesignCategory::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct CharaCardDesignCategory { + pub r#unknown0: u8, + pub r#unknown1: SeString, +} +impl CharaCardDesignCategory { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u8()?, + r#unknown1: row.field(1usize + offset)?.into_string()?, + }) + } +} diff --git a/src/sheet/chara_card_design_preset.rs b/src/sheet/chara_card_design_preset.rs index 0225ca20..badb2499 100644 --- a/src/sheet/chara_card_design_preset.rs +++ b/src/sheet/chara_card_design_preset.rs @@ -1,8 +1,8 @@ -use std::result::Result; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use ironworks::sestring::SeString; use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for CharaCardDesignPreset { fn name() -> String { "CharaCardDesignPreset".to_string() diff --git a/src/sheet/chara_card_design_type.rs b/src/sheet/chara_card_design_type.rs index dcbdb6a8..69125bae 100644 --- a/src/sheet/chara_card_design_type.rs +++ b/src/sheet/chara_card_design_type.rs @@ -1,7 +1,7 @@ -use std::result::Result; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for CharaCardDesignType { fn name() -> String { "CharaCardDesignType".to_string() @@ -12,9 +12,31 @@ impl MetadataAdapter for CharaCardDesignType { } } #[derive(Debug)] -pub struct CharaCardDesignType {} +pub struct CharaCardDesignType { + pub r#unknown0: bool, + pub r#unknown1: bool, + pub r#unknown2: bool, + pub r#unknown3: bool, + pub r#unknown4: bool, + pub r#unknown5: bool, + pub r#unknown6: bool, + pub r#unknown7: bool, + pub r#unknown8: bool, + pub r#unknown9: bool, +} impl CharaCardDesignType { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_bool()?, + r#unknown1: row.field(1usize + offset)?.into_bool()?, + r#unknown2: row.field(2usize + offset)?.into_bool()?, + r#unknown3: row.field(3usize + offset)?.into_bool()?, + r#unknown4: row.field(4usize + offset)?.into_bool()?, + r#unknown5: row.field(5usize + offset)?.into_bool()?, + r#unknown6: row.field(6usize + offset)?.into_bool()?, + r#unknown7: row.field(7usize + offset)?.into_bool()?, + r#unknown8: row.field(8usize + offset)?.into_bool()?, + r#unknown9: row.field(9usize + offset)?.into_bool()?, + }) } } diff --git a/src/sheet/chara_card_header.rs b/src/sheet/chara_card_header.rs index ca673906..3f282a63 100644 --- a/src/sheet/chara_card_header.rs +++ b/src/sheet/chara_card_header.rs @@ -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; -use crate::metadata::MetadataAdapter; impl MetadataAdapter for CharaCardHeader { fn name() -> String { "CharaCardHeader".to_string() @@ -20,9 +20,13 @@ pub struct CharaCardHeader { pub r#unknown3: u8, pub r#unknown4: u8, pub r#unknown5: u8, - pub r#unknown6: u16, + pub r#unlock_condition: u16, + pub r#unknown7: u16, + pub r#unknown8: u16, + pub r#unknown9: u16, pub r#sort_key: u8, - pub r#name: SeString, + pub r#name: u16, + pub r#unknown12: SeString, } impl CharaCardHeader { pub fn populate(row: &Row, offset: usize) -> Result { @@ -33,9 +37,13 @@ impl CharaCardHeader { r#unknown3: row.field(3usize + offset)?.into_u8()?, r#unknown4: row.field(4usize + offset)?.into_u8()?, r#unknown5: row.field(5usize + offset)?.into_u8()?, - r#unknown6: row.field(6usize + offset)?.into_u16()?, - r#sort_key: row.field(7usize + offset)?.into_u8()?, - r#name: row.field(8usize + offset)?.into_string()?, + r#unlock_condition: 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_u16()?, + r#sort_key: row.field(10usize + offset)?.into_u8()?, + r#name: row.field(11usize + offset)?.into_u16()?, + r#unknown12: row.field(12usize + offset)?.into_string()?, }) } } diff --git a/src/sheet/chara_card_play_style.rs b/src/sheet/chara_card_play_style.rs index 3ea88bb7..b9a6287f 100644 --- a/src/sheet/chara_card_play_style.rs +++ b/src/sheet/chara_card_play_style.rs @@ -1,8 +1,8 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use ironworks::sestring::SeString; -use crate::error::PopulateError; use std::result::Result; -use ironworks::excel::Row; impl MetadataAdapter for CharaCardPlayStyle { fn name() -> String { "CharaCardPlayStyle".to_string() diff --git a/src/sheet/chara_make_class_equip.rs b/src/sheet/chara_make_class_equip.rs index e7a5d1da..675ded61 100644 --- a/src/sheet/chara_make_class_equip.rs +++ b/src/sheet/chara_make_class_equip.rs @@ -1,7 +1,7 @@ -use std::result::Result; -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for CharaMakeClassEquip { fn name() -> String { "CharaMakeClassEquip".to_string() diff --git a/src/sheet/chara_make_customize.rs b/src/sheet/chara_make_customize.rs index 642b0f86..4c90fc52 100644 --- a/src/sheet/chara_make_customize.rs +++ b/src/sheet/chara_make_customize.rs @@ -1,6 +1,6 @@ -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use std::result::Result; impl MetadataAdapter for CharaMakeCustomize { fn name() -> String { @@ -19,6 +19,7 @@ pub struct CharaMakeCustomize { pub r#is_purchasable: bool, pub r#hint: u32, pub r#hint_item: u32, + pub r#unknown6: u8, } impl CharaMakeCustomize { pub fn populate(row: &Row, offset: usize) -> Result { @@ -29,6 +30,7 @@ impl CharaMakeCustomize { r#is_purchasable: row.field(3usize + offset)?.into_bool()?, r#hint: row.field(4usize + offset)?.into_u32()?, r#hint_item: row.field(5usize + offset)?.into_u32()?, + r#unknown6: row.field(6usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/chara_make_name.rs b/src/sheet/chara_make_name.rs index 6c2e88db..da18566f 100644 --- a/src/sheet/chara_make_name.rs +++ b/src/sheet/chara_make_name.rs @@ -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 ironworks::excel::Row; impl MetadataAdapter for CharaMakeName { fn name() -> String { "CharaMakeName".to_string() @@ -58,6 +58,9 @@ pub struct CharaMakeName { pub r#unknown41: SeString, pub r#unknown42: SeString, pub r#unknown43: SeString, + pub r#unknown44: SeString, + pub r#unknown45: SeString, + pub r#unknown46: SeString, pub r#viera_first_name: SeString, pub r#viera_rava_last_name: SeString, pub r#viera_veena_last_name: SeString, @@ -129,9 +132,12 @@ impl CharaMakeName { r#unknown41: row.field(41usize + offset)?.into_string()?, r#unknown42: row.field(42usize + offset)?.into_string()?, r#unknown43: row.field(43usize + offset)?.into_string()?, - r#viera_first_name: row.field(44usize + offset)?.into_string()?, - r#viera_rava_last_name: row.field(45usize + offset)?.into_string()?, - r#viera_veena_last_name: row.field(46usize + offset)?.into_string()?, + r#unknown44: row.field(44usize + offset)?.into_string()?, + r#unknown45: row.field(45usize + offset)?.into_string()?, + r#unknown46: row.field(46usize + offset)?.into_string()?, + r#viera_first_name: row.field(47usize + offset)?.into_string()?, + r#viera_rava_last_name: row.field(48usize + offset)?.into_string()?, + r#viera_veena_last_name: row.field(49usize + offset)?.into_string()?, }) } } diff --git a/src/sheet/chara_make_type.rs b/src/sheet/chara_make_type.rs index 8536284c..14f8da7b 100644 --- a/src/sheet/chara_make_type.rs +++ b/src/sheet/chara_make_type.rs @@ -1,9 +1,9 @@ -use crate::utility::read_array; use crate::error::PopulateError; -use std::result::Result; +use crate::metadata::MetadataAdapter; +use crate::utility::read_array; use ironworks::excel::Row; +use std::result::Result; use std::vec::Vec; -use crate::metadata::MetadataAdapter; impl MetadataAdapter for CharaMakeType { fn name() -> String { "CharaMakeType".to_string() @@ -31,7 +31,7 @@ impl CharaMakeType_SubMenuParam { } #[derive(Debug)] pub struct CharaMakeType_SubMenuGraphic { - pub r#sub_menu_graphic: Vec, + pub r#sub_menu_graphic: Vec, } impl CharaMakeType_SubMenuGraphic { pub fn populate(row: &Row, offset: usize) -> Result { @@ -40,20 +40,20 @@ impl CharaMakeType_SubMenuGraphic { offset, 28usize, 1usize, - |offset| { Result::Ok(row.field(2999usize + offset)?.into_u8()?) }, + |offset| { Result::Ok(row.field(2999usize + offset)?.into_u32()?) }, )?, }) } } #[derive(Debug)] pub struct CharaMakeType_Unnamed3347 { - pub r#helmet: Vec, - pub r#top: Vec, - pub r#gloves: Vec, - pub r#legs: Vec, - pub r#shoes: Vec, - pub r#weapon: Vec, - pub r#sub_weapon: Vec, + pub r#helmet: Vec, + pub r#top: Vec, + pub r#gloves: Vec, + pub r#legs: Vec, + pub r#shoes: Vec, + pub r#weapon: Vec, + pub r#sub_weapon: Vec, } impl CharaMakeType_Unnamed3347 { pub fn populate(row: &Row, offset: usize) -> Result { @@ -62,43 +62,43 @@ impl CharaMakeType_Unnamed3347 { offset, 3usize, 1usize, - |offset| { Result::Ok(row.field(3347usize + offset)?.into_u64()?) }, + |offset| { Result::Ok(row.field(3347usize + offset)?.into_u8()?) }, )?, r#top: read_array( offset, 3usize, 1usize, - |offset| { Result::Ok(row.field(3350usize + offset)?.into_u64()?) }, + |offset| { Result::Ok(row.field(3350usize + offset)?.into_u8()?) }, )?, r#gloves: read_array( offset, 3usize, 1usize, - |offset| { Result::Ok(row.field(3353usize + offset)?.into_u64()?) }, + |offset| { Result::Ok(row.field(3353usize + offset)?.into_u8()?) }, )?, r#legs: read_array( offset, 3usize, 1usize, - |offset| { Result::Ok(row.field(3356usize + offset)?.into_u64()?) }, + |offset| { Result::Ok(row.field(3356usize + offset)?.into_u8()?) }, )?, r#shoes: read_array( offset, 3usize, 1usize, - |offset| { Result::Ok(row.field(3359usize + offset)?.into_u64()?) }, + |offset| { Result::Ok(row.field(3359usize + offset)?.into_u8()?) }, )?, r#weapon: read_array( offset, 3usize, 1usize, - |offset| { Result::Ok(row.field(3362usize + offset)?.into_u64()?) }, + |offset| { Result::Ok(row.field(3362usize + offset)?.into_u8()?) }, )?, r#sub_weapon: read_array( offset, 3usize, 1usize, - |offset| { Result::Ok(row.field(3365usize + offset)?.into_u64()?) }, + |offset| { Result::Ok(row.field(3365usize + offset)?.into_u8()?) }, )?, }) } @@ -118,8 +118,176 @@ pub struct CharaMakeType { pub r#sub_menu_param: Vec, pub r#sub_menu_graphic: Vec, pub r#voice_struct: Vec, - pub r#facial_feature_option: Vec>, + pub r#facial_feature_option: Vec>, pub r#unnamed3347: Vec, + pub r#unknown3368: u8, + pub r#unknown3369: u8, + pub r#unknown3370: u8, + pub r#unknown3371: u8, + pub r#unknown3372: u8, + pub r#unknown3373: u8, + pub r#unknown3374: u8, + pub r#unknown3375: u8, + pub r#unknown3376: u8, + pub r#unknown3377: u8, + pub r#unknown3378: u8, + pub r#unknown3379: u8, + pub r#unknown3380: u8, + pub r#unknown3381: u8, + pub r#unknown3382: u8, + pub r#unknown3383: u8, + pub r#unknown3384: u8, + pub r#unknown3385: u8, + pub r#unknown3386: u8, + pub r#unknown3387: u8, + pub r#unknown3388: u8, + pub r#unknown3389: u8, + pub r#unknown3390: u8, + pub r#unknown3391: u8, + pub r#unknown3392: u8, + pub r#unknown3393: u8, + pub r#unknown3394: u8, + pub r#unknown3395: u8, + pub r#unknown3396: u8, + pub r#unknown3397: u8, + pub r#unknown3398: u8, + pub r#unknown3399: u8, + pub r#unknown3400: u8, + pub r#unknown3401: u8, + pub r#unknown3402: u8, + pub r#unknown3403: u8, + pub r#unknown3404: u8, + pub r#unknown3405: u8, + pub r#unknown3406: u8, + pub r#unknown3407: u8, + pub r#unknown3408: u8, + pub r#unknown3409: u8, + pub r#unknown3410: u8, + pub r#unknown3411: u8, + pub r#unknown3412: u8, + pub r#unknown3413: u8, + pub r#unknown3414: u8, + pub r#unknown3415: u8, + pub r#unknown3416: u8, + pub r#unknown3417: u8, + pub r#unknown3418: u8, + pub r#unknown3419: u8, + pub r#unknown3420: u8, + pub r#unknown3421: u8, + pub r#unknown3422: u8, + pub r#unknown3423: u8, + pub r#unknown3424: u8, + pub r#unknown3425: u8, + pub r#unknown3426: u8, + pub r#unknown3427: u8, + pub r#unknown3428: u8, + pub r#unknown3429: u8, + pub r#unknown3430: u8, + pub r#unknown3431: u8, + pub r#unknown3432: u8, + pub r#unknown3433: u8, + pub r#unknown3434: u8, + pub r#unknown3435: u8, + pub r#unknown3436: u8, + pub r#unknown3437: u8, + pub r#unknown3438: u8, + pub r#unknown3439: u8, + pub r#unknown3440: u8, + pub r#unknown3441: u8, + pub r#unknown3442: u8, + pub r#unknown3443: u8, + pub r#unknown3444: u8, + pub r#unknown3445: u8, + pub r#unknown3446: u8, + pub r#unknown3447: u8, + pub r#unknown3448: u8, + pub r#unknown3449: u8, + pub r#unknown3450: u8, + pub r#unknown3451: u8, + pub r#unknown3452: u8, + pub r#unknown3453: u8, + pub r#unknown3454: u8, + pub r#unknown3455: u8, + pub r#unknown3456: u8, + pub r#unknown3457: u8, + pub r#unknown3458: u8, + pub r#unknown3459: i32, + pub r#unknown3460: i32, + pub r#unknown3461: i32, + pub r#unknown3462: i32, + pub r#unknown3463: i32, + pub r#unknown3464: i32, + pub r#unknown3465: i32, + pub r#unknown3466: i32, + pub r#unknown3467: i32, + pub r#unknown3468: i32, + pub r#unknown3469: i32, + pub r#unknown3470: i32, + pub r#unknown3471: i32, + pub r#unknown3472: i32, + pub r#unknown3473: i32, + pub r#unknown3474: i32, + pub r#unknown3475: i32, + pub r#unknown3476: i32, + pub r#unknown3477: i32, + pub r#unknown3478: i32, + pub r#unknown3479: i32, + pub r#unknown3480: i32, + pub r#unknown3481: i32, + pub r#unknown3482: i32, + pub r#unknown3483: i32, + pub r#unknown3484: i32, + pub r#unknown3485: i32, + pub r#unknown3486: i32, + pub r#unknown3487: i32, + pub r#unknown3488: i32, + pub r#unknown3489: i32, + pub r#unknown3490: i32, + pub r#unknown3491: i32, + pub r#unknown3492: i32, + pub r#unknown3493: i32, + pub r#unknown3494: i32, + pub r#unknown3495: i32, + pub r#unknown3496: i32, + pub r#unknown3497: i32, + pub r#unknown3498: i32, + pub r#unknown3499: i32, + pub r#unknown3500: i32, + pub r#unknown3501: i32, + pub r#unknown3502: i32, + pub r#unknown3503: i32, + pub r#unknown3504: i32, + pub r#unknown3505: i32, + pub r#unknown3506: i32, + pub r#unknown3507: i32, + pub r#unknown3508: i32, + pub r#unknown3509: i32, + pub r#unknown3510: i32, + pub r#unknown3511: i32, + pub r#unknown3512: i32, + pub r#unknown3513: i32, + pub r#unknown3514: i32, + pub r#unknown3515: u64, + pub r#unknown3516: u64, + pub r#unknown3517: u64, + pub r#unknown3518: u64, + pub r#unknown3519: u64, + pub r#unknown3520: u64, + pub r#unknown3521: u64, + pub r#unknown3522: u64, + pub r#unknown3523: u64, + pub r#unknown3524: u64, + pub r#unknown3525: u64, + pub r#unknown3526: u64, + pub r#unknown3527: u64, + pub r#unknown3528: u64, + pub r#unknown3529: u64, + pub r#unknown3530: u64, + pub r#unknown3531: u64, + pub r#unknown3532: u64, + pub r#unknown3533: u64, + pub r#unknown3534: u64, + pub r#unknown3535: u64, } impl CharaMakeType { pub fn populate(row: &Row, offset: usize) -> Result { @@ -202,7 +370,7 @@ impl CharaMakeType { 8usize, 1usize, |offset| { - Result::Ok(row.field(3291usize + offset)?.into_i32()?) + Result::Ok(row.field(3291usize + offset)?.into_u8()?) }, )?, ) @@ -216,6 +384,174 @@ impl CharaMakeType { Result::Ok(CharaMakeType_Unnamed3347::populate(row, offset)?) }, )?, + r#unknown3368: row.field(3368usize + offset)?.into_u8()?, + r#unknown3369: row.field(3369usize + offset)?.into_u8()?, + r#unknown3370: row.field(3370usize + offset)?.into_u8()?, + r#unknown3371: row.field(3371usize + offset)?.into_u8()?, + r#unknown3372: row.field(3372usize + offset)?.into_u8()?, + r#unknown3373: row.field(3373usize + offset)?.into_u8()?, + r#unknown3374: row.field(3374usize + offset)?.into_u8()?, + r#unknown3375: row.field(3375usize + offset)?.into_u8()?, + r#unknown3376: row.field(3376usize + offset)?.into_u8()?, + r#unknown3377: row.field(3377usize + offset)?.into_u8()?, + r#unknown3378: row.field(3378usize + offset)?.into_u8()?, + r#unknown3379: row.field(3379usize + offset)?.into_u8()?, + r#unknown3380: row.field(3380usize + offset)?.into_u8()?, + r#unknown3381: row.field(3381usize + offset)?.into_u8()?, + r#unknown3382: row.field(3382usize + offset)?.into_u8()?, + r#unknown3383: row.field(3383usize + offset)?.into_u8()?, + r#unknown3384: row.field(3384usize + offset)?.into_u8()?, + r#unknown3385: row.field(3385usize + offset)?.into_u8()?, + r#unknown3386: row.field(3386usize + offset)?.into_u8()?, + r#unknown3387: row.field(3387usize + offset)?.into_u8()?, + r#unknown3388: row.field(3388usize + offset)?.into_u8()?, + r#unknown3389: row.field(3389usize + offset)?.into_u8()?, + r#unknown3390: row.field(3390usize + offset)?.into_u8()?, + r#unknown3391: row.field(3391usize + offset)?.into_u8()?, + r#unknown3392: row.field(3392usize + offset)?.into_u8()?, + r#unknown3393: row.field(3393usize + offset)?.into_u8()?, + r#unknown3394: row.field(3394usize + offset)?.into_u8()?, + r#unknown3395: row.field(3395usize + offset)?.into_u8()?, + r#unknown3396: row.field(3396usize + offset)?.into_u8()?, + r#unknown3397: row.field(3397usize + offset)?.into_u8()?, + r#unknown3398: row.field(3398usize + offset)?.into_u8()?, + r#unknown3399: row.field(3399usize + offset)?.into_u8()?, + r#unknown3400: row.field(3400usize + offset)?.into_u8()?, + r#unknown3401: row.field(3401usize + offset)?.into_u8()?, + r#unknown3402: row.field(3402usize + offset)?.into_u8()?, + r#unknown3403: row.field(3403usize + offset)?.into_u8()?, + r#unknown3404: row.field(3404usize + offset)?.into_u8()?, + r#unknown3405: row.field(3405usize + offset)?.into_u8()?, + r#unknown3406: row.field(3406usize + offset)?.into_u8()?, + r#unknown3407: row.field(3407usize + offset)?.into_u8()?, + r#unknown3408: row.field(3408usize + offset)?.into_u8()?, + r#unknown3409: row.field(3409usize + offset)?.into_u8()?, + r#unknown3410: row.field(3410usize + offset)?.into_u8()?, + r#unknown3411: row.field(3411usize + offset)?.into_u8()?, + r#unknown3412: row.field(3412usize + offset)?.into_u8()?, + r#unknown3413: row.field(3413usize + offset)?.into_u8()?, + r#unknown3414: row.field(3414usize + offset)?.into_u8()?, + r#unknown3415: row.field(3415usize + offset)?.into_u8()?, + r#unknown3416: row.field(3416usize + offset)?.into_u8()?, + r#unknown3417: row.field(3417usize + offset)?.into_u8()?, + r#unknown3418: row.field(3418usize + offset)?.into_u8()?, + r#unknown3419: row.field(3419usize + offset)?.into_u8()?, + r#unknown3420: row.field(3420usize + offset)?.into_u8()?, + r#unknown3421: row.field(3421usize + offset)?.into_u8()?, + r#unknown3422: row.field(3422usize + offset)?.into_u8()?, + r#unknown3423: row.field(3423usize + offset)?.into_u8()?, + r#unknown3424: row.field(3424usize + offset)?.into_u8()?, + r#unknown3425: row.field(3425usize + offset)?.into_u8()?, + r#unknown3426: row.field(3426usize + offset)?.into_u8()?, + r#unknown3427: row.field(3427usize + offset)?.into_u8()?, + r#unknown3428: row.field(3428usize + offset)?.into_u8()?, + r#unknown3429: row.field(3429usize + offset)?.into_u8()?, + r#unknown3430: row.field(3430usize + offset)?.into_u8()?, + r#unknown3431: row.field(3431usize + offset)?.into_u8()?, + r#unknown3432: row.field(3432usize + offset)?.into_u8()?, + r#unknown3433: row.field(3433usize + offset)?.into_u8()?, + r#unknown3434: row.field(3434usize + offset)?.into_u8()?, + r#unknown3435: row.field(3435usize + offset)?.into_u8()?, + r#unknown3436: row.field(3436usize + offset)?.into_u8()?, + r#unknown3437: row.field(3437usize + offset)?.into_u8()?, + r#unknown3438: row.field(3438usize + offset)?.into_u8()?, + r#unknown3439: row.field(3439usize + offset)?.into_u8()?, + r#unknown3440: row.field(3440usize + offset)?.into_u8()?, + r#unknown3441: row.field(3441usize + offset)?.into_u8()?, + r#unknown3442: row.field(3442usize + offset)?.into_u8()?, + r#unknown3443: row.field(3443usize + offset)?.into_u8()?, + r#unknown3444: row.field(3444usize + offset)?.into_u8()?, + r#unknown3445: row.field(3445usize + offset)?.into_u8()?, + r#unknown3446: row.field(3446usize + offset)?.into_u8()?, + r#unknown3447: row.field(3447usize + offset)?.into_u8()?, + r#unknown3448: row.field(3448usize + offset)?.into_u8()?, + r#unknown3449: row.field(3449usize + offset)?.into_u8()?, + r#unknown3450: row.field(3450usize + offset)?.into_u8()?, + r#unknown3451: row.field(3451usize + offset)?.into_u8()?, + r#unknown3452: row.field(3452usize + offset)?.into_u8()?, + r#unknown3453: row.field(3453usize + offset)?.into_u8()?, + r#unknown3454: row.field(3454usize + offset)?.into_u8()?, + r#unknown3455: row.field(3455usize + offset)?.into_u8()?, + r#unknown3456: row.field(3456usize + offset)?.into_u8()?, + r#unknown3457: row.field(3457usize + offset)?.into_u8()?, + r#unknown3458: row.field(3458usize + offset)?.into_u8()?, + r#unknown3459: row.field(3459usize + offset)?.into_i32()?, + r#unknown3460: row.field(3460usize + offset)?.into_i32()?, + r#unknown3461: row.field(3461usize + offset)?.into_i32()?, + r#unknown3462: row.field(3462usize + offset)?.into_i32()?, + r#unknown3463: row.field(3463usize + offset)?.into_i32()?, + r#unknown3464: row.field(3464usize + offset)?.into_i32()?, + r#unknown3465: row.field(3465usize + offset)?.into_i32()?, + r#unknown3466: row.field(3466usize + offset)?.into_i32()?, + r#unknown3467: row.field(3467usize + offset)?.into_i32()?, + r#unknown3468: row.field(3468usize + offset)?.into_i32()?, + r#unknown3469: row.field(3469usize + offset)?.into_i32()?, + r#unknown3470: row.field(3470usize + offset)?.into_i32()?, + r#unknown3471: row.field(3471usize + offset)?.into_i32()?, + r#unknown3472: row.field(3472usize + offset)?.into_i32()?, + r#unknown3473: row.field(3473usize + offset)?.into_i32()?, + r#unknown3474: row.field(3474usize + offset)?.into_i32()?, + r#unknown3475: row.field(3475usize + offset)?.into_i32()?, + r#unknown3476: row.field(3476usize + offset)?.into_i32()?, + r#unknown3477: row.field(3477usize + offset)?.into_i32()?, + r#unknown3478: row.field(3478usize + offset)?.into_i32()?, + r#unknown3479: row.field(3479usize + offset)?.into_i32()?, + r#unknown3480: row.field(3480usize + offset)?.into_i32()?, + r#unknown3481: row.field(3481usize + offset)?.into_i32()?, + r#unknown3482: row.field(3482usize + offset)?.into_i32()?, + r#unknown3483: row.field(3483usize + offset)?.into_i32()?, + r#unknown3484: row.field(3484usize + offset)?.into_i32()?, + r#unknown3485: row.field(3485usize + offset)?.into_i32()?, + r#unknown3486: row.field(3486usize + offset)?.into_i32()?, + r#unknown3487: row.field(3487usize + offset)?.into_i32()?, + r#unknown3488: row.field(3488usize + offset)?.into_i32()?, + r#unknown3489: row.field(3489usize + offset)?.into_i32()?, + r#unknown3490: row.field(3490usize + offset)?.into_i32()?, + r#unknown3491: row.field(3491usize + offset)?.into_i32()?, + r#unknown3492: row.field(3492usize + offset)?.into_i32()?, + r#unknown3493: row.field(3493usize + offset)?.into_i32()?, + r#unknown3494: row.field(3494usize + offset)?.into_i32()?, + r#unknown3495: row.field(3495usize + offset)?.into_i32()?, + r#unknown3496: row.field(3496usize + offset)?.into_i32()?, + r#unknown3497: row.field(3497usize + offset)?.into_i32()?, + r#unknown3498: row.field(3498usize + offset)?.into_i32()?, + r#unknown3499: row.field(3499usize + offset)?.into_i32()?, + r#unknown3500: row.field(3500usize + offset)?.into_i32()?, + r#unknown3501: row.field(3501usize + offset)?.into_i32()?, + r#unknown3502: row.field(3502usize + offset)?.into_i32()?, + r#unknown3503: row.field(3503usize + offset)?.into_i32()?, + r#unknown3504: row.field(3504usize + offset)?.into_i32()?, + r#unknown3505: row.field(3505usize + offset)?.into_i32()?, + r#unknown3506: row.field(3506usize + offset)?.into_i32()?, + r#unknown3507: row.field(3507usize + offset)?.into_i32()?, + r#unknown3508: row.field(3508usize + offset)?.into_i32()?, + r#unknown3509: row.field(3509usize + offset)?.into_i32()?, + r#unknown3510: row.field(3510usize + offset)?.into_i32()?, + r#unknown3511: row.field(3511usize + offset)?.into_i32()?, + r#unknown3512: row.field(3512usize + offset)?.into_i32()?, + r#unknown3513: row.field(3513usize + offset)?.into_i32()?, + r#unknown3514: row.field(3514usize + offset)?.into_i32()?, + r#unknown3515: row.field(3515usize + offset)?.into_u64()?, + r#unknown3516: row.field(3516usize + offset)?.into_u64()?, + r#unknown3517: row.field(3517usize + offset)?.into_u64()?, + r#unknown3518: row.field(3518usize + offset)?.into_u64()?, + r#unknown3519: row.field(3519usize + offset)?.into_u64()?, + r#unknown3520: row.field(3520usize + offset)?.into_u64()?, + r#unknown3521: row.field(3521usize + offset)?.into_u64()?, + r#unknown3522: row.field(3522usize + offset)?.into_u64()?, + r#unknown3523: row.field(3523usize + offset)?.into_u64()?, + r#unknown3524: row.field(3524usize + offset)?.into_u64()?, + r#unknown3525: row.field(3525usize + offset)?.into_u64()?, + r#unknown3526: row.field(3526usize + offset)?.into_u64()?, + r#unknown3527: row.field(3527usize + offset)?.into_u64()?, + r#unknown3528: row.field(3528usize + offset)?.into_u64()?, + r#unknown3529: row.field(3529usize + offset)?.into_u64()?, + r#unknown3530: row.field(3530usize + offset)?.into_u64()?, + r#unknown3531: row.field(3531usize + offset)?.into_u64()?, + r#unknown3532: row.field(3532usize + offset)?.into_u64()?, + r#unknown3533: row.field(3533usize + offset)?.into_u64()?, + r#unknown3534: row.field(3534usize + offset)?.into_u64()?, + r#unknown3535: row.field(3535usize + offset)?.into_u64()?, }) } } diff --git a/src/sheet/chocobo_race.rs b/src/sheet/chocobo_race.rs index 94b21aa7..b45b8ee3 100644 --- a/src/sheet/chocobo_race.rs +++ b/src/sheet/chocobo_race.rs @@ -1,7 +1,7 @@ -use std::result::Result; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for ChocoboRace { fn name() -> String { "ChocoboRace".to_string() diff --git a/src/sheet/chocobo_race_ability.rs b/src/sheet/chocobo_race_ability.rs index 79fe73aa..0142c022 100644 --- a/src/sheet/chocobo_race_ability.rs +++ b/src/sheet/chocobo_race_ability.rs @@ -1,8 +1,8 @@ -use std::result::Result; -use ironworks::sestring::SeString; use crate::error::PopulateError; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for ChocoboRaceAbility { fn name() -> String { "ChocoboRaceAbility".to_string() diff --git a/src/sheet/chocobo_race_ability_type.rs b/src/sheet/chocobo_race_ability_type.rs index 668fa046..f9b374b4 100644 --- a/src/sheet/chocobo_race_ability_type.rs +++ b/src/sheet/chocobo_race_ability_type.rs @@ -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 ChocoboRaceAbilityType { fn name() -> String { "ChocoboRaceAbilityType".to_string() diff --git a/src/sheet/chocobo_race_item.rs b/src/sheet/chocobo_race_item.rs index 4e5f7a57..f2a605c8 100644 --- a/src/sheet/chocobo_race_item.rs +++ b/src/sheet/chocobo_race_item.rs @@ -1,8 +1,8 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; use ironworks::excel::Row; use ironworks::sestring::SeString; -use crate::error::PopulateError; +use std::result::Result; impl MetadataAdapter for ChocoboRaceItem { fn name() -> String { "ChocoboRaceItem".to_string() diff --git a/src/sheet/chocobo_race_rank.rs b/src/sheet/chocobo_race_rank.rs index bec63d42..5614ddff 100644 --- a/src/sheet/chocobo_race_rank.rs +++ b/src/sheet/chocobo_race_rank.rs @@ -1,7 +1,7 @@ -use std::result::Result; -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 ChocoboRaceRank { fn name() -> String { "ChocoboRaceRank".to_string() diff --git a/src/sheet/chocobo_race_status.rs b/src/sheet/chocobo_race_status.rs index 285b930b..1a358c9f 100644 --- a/src/sheet/chocobo_race_status.rs +++ b/src/sheet/chocobo_race_status.rs @@ -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 ChocoboRaceStatus { fn name() -> String { "ChocoboRaceStatus".to_string() @@ -14,11 +14,13 @@ impl MetadataAdapter for ChocoboRaceStatus { #[derive(Debug)] pub struct ChocoboRaceStatus { pub r#status: i32, + pub r#unknown1: u16, } impl ChocoboRaceStatus { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#status: row.field(0usize + offset)?.into_i32()?, + r#unknown1: row.field(1usize + offset)?.into_u16()?, }) } } diff --git a/src/sheet/chocobo_race_territory.rs b/src/sheet/chocobo_race_territory.rs index 098c9315..a13698d4 100644 --- a/src/sheet/chocobo_race_territory.rs +++ b/src/sheet/chocobo_race_territory.rs @@ -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 ChocoboRaceTerritory { fn name() -> String { diff --git a/src/sheet/chocobo_race_tutorial.rs b/src/sheet/chocobo_race_tutorial.rs index 9184fb09..c3c3b79c 100644 --- a/src/sheet/chocobo_race_tutorial.rs +++ b/src/sheet/chocobo_race_tutorial.rs @@ -1,9 +1,9 @@ -use std::vec::Vec; -use crate::utility::read_array; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; +use crate::utility::read_array; use ironworks::excel::Row; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for ChocoboRaceTutorial { fn name() -> String { "ChocoboRaceTutorial".to_string() @@ -16,6 +16,8 @@ impl MetadataAdapter for ChocoboRaceTutorial { #[derive(Debug)] pub struct ChocoboRaceTutorial { pub r#npc_yell: Vec, + pub r#unknown8: u16, + pub r#unknown9: u16, } impl ChocoboRaceTutorial { pub fn populate(row: &Row, offset: usize) -> Result { @@ -26,6 +28,8 @@ impl ChocoboRaceTutorial { 1usize, |offset| { Result::Ok(row.field(0usize + offset)?.into_i32()?) }, )?, + r#unknown8: row.field(8usize + offset)?.into_u16()?, + r#unknown9: row.field(9usize + offset)?.into_u16()?, }) } } diff --git a/src/sheet/chocobo_race_weather.rs b/src/sheet/chocobo_race_weather.rs index b5bffb33..a5b52950 100644 --- a/src/sheet/chocobo_race_weather.rs +++ b/src/sheet/chocobo_race_weather.rs @@ -1,7 +1,7 @@ -use std::result::Result; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for ChocoboRaceWeather { fn name() -> String { "ChocoboRaceWeather".to_string() diff --git a/src/sheet/chocobo_taxi.rs b/src/sheet/chocobo_taxi.rs index 606fc75a..46a201a4 100644 --- a/src/sheet/chocobo_taxi.rs +++ b/src/sheet/chocobo_taxi.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use std::result::Result; -use crate::error::PopulateError; impl MetadataAdapter for ChocoboTaxi { fn name() -> String { "ChocoboTaxi".to_string() @@ -16,6 +16,8 @@ pub struct ChocoboTaxi { pub r#location: u32, pub r#fare: u8, pub r#time_required: u16, + pub r#unknown3: u16, + pub r#unknown4: bool, } impl ChocoboTaxi { pub fn populate(row: &Row, offset: usize) -> Result { @@ -23,6 +25,8 @@ impl ChocoboTaxi { r#location: row.field(0usize + offset)?.into_u32()?, r#fare: row.field(1usize + offset)?.into_u8()?, r#time_required: row.field(2usize + offset)?.into_u16()?, + r#unknown3: row.field(3usize + offset)?.into_u16()?, + r#unknown4: row.field(4usize + offset)?.into_bool()?, }) } } diff --git a/src/sheet/chocobo_taxi_stand.rs b/src/sheet/chocobo_taxi_stand.rs index e5de3d3c..ff872d92 100644 --- a/src/sheet/chocobo_taxi_stand.rs +++ b/src/sheet/chocobo_taxi_stand.rs @@ -1,10 +1,10 @@ -use ironworks::sestring::SeString; -use std::vec::Vec; -use crate::metadata::MetadataAdapter; -use std::result::Result; 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 std::vec::Vec; impl MetadataAdapter for ChocoboTaxiStand { fn name() -> String { "ChocoboTaxiStand".to_string() diff --git a/src/sheet/circle_activity.rs b/src/sheet/circle_activity.rs index db915f3d..a39908b4 100644 --- a/src/sheet/circle_activity.rs +++ b/src/sheet/circle_activity.rs @@ -1,8 +1,8 @@ -use ironworks::sestring::SeString; -use std::result::Result; -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for CircleActivity { fn name() -> String { "CircleActivity".to_string() diff --git a/src/sheet/class_job.rs b/src/sheet/class_job.rs index 5c686e30..f6672d35 100644 --- a/src/sheet/class_job.rs +++ b/src/sheet/class_job.rs @@ -1,7 +1,7 @@ -use ironworks::sestring::SeString; -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; use std::result::Result; impl MetadataAdapter for ClassJob { fn name() -> String { @@ -37,30 +37,34 @@ pub struct ClassJob { pub r#unknown20: u16, pub r#unknown21: u16, pub r#unknown22: u16, - pub r#unknown23: u8, + pub r#unknown23: i32, + pub r#unknown24: i32, + pub r#unknown25: i32, pub r#pv_p_action_sort_row: u8, - pub r#unknown25: u8, + pub r#unknown27: u8, pub r#class_job_parent: u8, - pub r#name_english: SeString, - pub r#item_starting_weapon: i32, - pub r#unknown29: i32, - pub r#role: u8, + pub r#name_english: u8, + pub r#item_starting_weapon: SeString, + pub r#unknown31: i32, + pub r#role: i32, pub r#starting_town: u8, - pub r#monster_note: i8, - pub r#primary_stat: u8, - pub r#limit_break1: u16, + pub r#monster_note: u8, + pub r#primary_stat: i8, + pub r#limit_break1: u8, pub r#limit_break2: u16, pub r#limit_break3: u16, - pub r#ui_priority: u8, - pub r#item_soul_crystal: u32, + pub r#ui_priority: u16, + pub r#item_soul_crystal: u8, pub r#unlock_quest: u32, pub r#relic_quest: u32, pub r#prerequisite: u32, - pub r#starting_level: u8, + pub r#starting_level: u32, pub r#party_bonus: u8, - pub r#unknown44: u8, - pub r#is_limited_job: bool, + pub r#unknown46: u8, + pub r#is_limited_job: u8, pub r#can_queue_for_duty: bool, + pub r#unknown49: bool, + pub r#unknown50: bool, } impl ClassJob { pub fn populate(row: &Row, offset: usize) -> Result { @@ -88,30 +92,34 @@ impl ClassJob { r#unknown20: row.field(20usize + offset)?.into_u16()?, r#unknown21: row.field(21usize + offset)?.into_u16()?, r#unknown22: row.field(22usize + offset)?.into_u16()?, - r#unknown23: row.field(23usize + offset)?.into_u8()?, - r#pv_p_action_sort_row: row.field(24usize + offset)?.into_u8()?, - r#unknown25: row.field(25usize + offset)?.into_u8()?, - r#class_job_parent: row.field(26usize + offset)?.into_u8()?, - r#name_english: row.field(27usize + offset)?.into_string()?, - r#item_starting_weapon: row.field(28usize + offset)?.into_i32()?, - r#unknown29: row.field(29usize + offset)?.into_i32()?, - r#role: row.field(30usize + offset)?.into_u8()?, - r#starting_town: row.field(31usize + offset)?.into_u8()?, - r#monster_note: row.field(32usize + offset)?.into_i8()?, - r#primary_stat: row.field(33usize + offset)?.into_u8()?, - r#limit_break1: row.field(34usize + offset)?.into_u16()?, - r#limit_break2: row.field(35usize + offset)?.into_u16()?, - r#limit_break3: row.field(36usize + offset)?.into_u16()?, - r#ui_priority: row.field(37usize + offset)?.into_u8()?, - r#item_soul_crystal: row.field(38usize + offset)?.into_u32()?, - r#unlock_quest: row.field(39usize + offset)?.into_u32()?, - r#relic_quest: row.field(40usize + offset)?.into_u32()?, - r#prerequisite: row.field(41usize + offset)?.into_u32()?, - r#starting_level: row.field(42usize + offset)?.into_u8()?, - r#party_bonus: row.field(43usize + offset)?.into_u8()?, - r#unknown44: row.field(44usize + offset)?.into_u8()?, - r#is_limited_job: row.field(45usize + offset)?.into_bool()?, - r#can_queue_for_duty: row.field(46usize + offset)?.into_bool()?, + r#unknown23: row.field(23usize + offset)?.into_i32()?, + r#unknown24: row.field(24usize + offset)?.into_i32()?, + r#unknown25: row.field(25usize + offset)?.into_i32()?, + r#pv_p_action_sort_row: row.field(26usize + offset)?.into_u8()?, + r#unknown27: row.field(27usize + offset)?.into_u8()?, + r#class_job_parent: row.field(28usize + offset)?.into_u8()?, + r#name_english: row.field(29usize + offset)?.into_u8()?, + r#item_starting_weapon: row.field(30usize + offset)?.into_string()?, + r#unknown31: row.field(31usize + offset)?.into_i32()?, + r#role: row.field(32usize + offset)?.into_i32()?, + r#starting_town: row.field(33usize + offset)?.into_u8()?, + r#monster_note: row.field(34usize + offset)?.into_u8()?, + r#primary_stat: row.field(35usize + offset)?.into_i8()?, + r#limit_break1: row.field(36usize + offset)?.into_u8()?, + r#limit_break2: row.field(37usize + offset)?.into_u16()?, + r#limit_break3: row.field(38usize + offset)?.into_u16()?, + r#ui_priority: row.field(39usize + offset)?.into_u16()?, + r#item_soul_crystal: row.field(40usize + offset)?.into_u8()?, + r#unlock_quest: row.field(41usize + offset)?.into_u32()?, + r#relic_quest: row.field(42usize + offset)?.into_u32()?, + r#prerequisite: row.field(43usize + offset)?.into_u32()?, + r#starting_level: row.field(44usize + offset)?.into_u32()?, + r#party_bonus: row.field(45usize + offset)?.into_u8()?, + r#unknown46: row.field(46usize + offset)?.into_u8()?, + r#is_limited_job: row.field(47usize + offset)?.into_u8()?, + r#can_queue_for_duty: row.field(48usize + offset)?.into_bool()?, + r#unknown49: row.field(49usize + offset)?.into_bool()?, + r#unknown50: row.field(50usize + offset)?.into_bool()?, }) } } diff --git a/src/sheet/class_job_category.rs b/src/sheet/class_job_category.rs index b9f08427..bb8e5463 100644 --- a/src/sheet/class_job_category.rs +++ b/src/sheet/class_job_category.rs @@ -1,8 +1,8 @@ -use ironworks::sestring::SeString; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; use ironworks::excel::Row; -use crate::error::PopulateError; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for ClassJobCategory { fn name() -> String { "ClassJobCategory".to_string() @@ -56,6 +56,11 @@ pub struct ClassJobCategory { pub r#dnc: bool, pub r#rpr: bool, pub r#sge: bool, + pub r#vpr: bool, + pub r#pct: bool, + pub r#unknown44: bool, + pub r#unknown45: bool, + pub r#unknown46: bool, } impl ClassJobCategory { pub fn populate(row: &Row, offset: usize) -> Result { @@ -102,6 +107,11 @@ impl ClassJobCategory { r#dnc: row.field(39usize + offset)?.into_bool()?, r#rpr: row.field(40usize + offset)?.into_bool()?, r#sge: row.field(41usize + offset)?.into_bool()?, + r#vpr: row.field(42usize + offset)?.into_bool()?, + r#pct: row.field(43usize + offset)?.into_bool()?, + r#unknown44: row.field(44usize + offset)?.into_bool()?, + r#unknown45: row.field(45usize + offset)?.into_bool()?, + r#unknown46: row.field(46usize + offset)?.into_bool()?, }) } } diff --git a/src/sheet/collectables_shop.rs b/src/sheet/collectables_shop.rs index 5df4a5d6..712d6477 100644 --- a/src/sheet/collectables_shop.rs +++ b/src/sheet/collectables_shop.rs @@ -1,10 +1,10 @@ -use std::vec::Vec; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use crate::utility::read_array; -use std::result::Result; -use ironworks::sestring::SeString; use ironworks::excel::Row; -use crate::metadata::MetadataAdapter; +use ironworks::sestring::SeString; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for CollectablesShop { fn name() -> String { "CollectablesShop".to_string() diff --git a/src/sheet/collectables_shop_item.rs b/src/sheet/collectables_shop_item.rs index 185f03e7..279d66f8 100644 --- a/src/sheet/collectables_shop_item.rs +++ b/src/sheet/collectables_shop_item.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; -use std::result::Result; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for CollectablesShopItem { fn name() -> String { "CollectablesShopItem".to_string() @@ -16,6 +16,7 @@ pub struct CollectablesShopItem { pub r#item: u32, pub r#collectables_shop_item_group: u8, pub r#level_min: u16, + pub r#unknown3: u32, pub r#level_max: u16, pub r#stars: u8, pub r#key: u8, @@ -28,11 +29,12 @@ impl CollectablesShopItem { r#item: row.field(0usize + offset)?.into_u32()?, r#collectables_shop_item_group: row.field(1usize + offset)?.into_u8()?, r#level_min: row.field(2usize + offset)?.into_u16()?, - r#level_max: row.field(3usize + offset)?.into_u16()?, - r#stars: row.field(4usize + offset)?.into_u8()?, - r#key: row.field(5usize + offset)?.into_u8()?, - r#collectables_shop_refine: row.field(6usize + offset)?.into_u16()?, - r#collectables_shop_reward_scrip: row.field(7usize + offset)?.into_u16()?, + r#unknown3: row.field(3usize + offset)?.into_u32()?, + r#level_max: row.field(4usize + offset)?.into_u16()?, + r#stars: row.field(5usize + offset)?.into_u8()?, + r#key: row.field(6usize + offset)?.into_u8()?, + r#collectables_shop_refine: row.field(7usize + offset)?.into_u16()?, + r#collectables_shop_reward_scrip: row.field(8usize + offset)?.into_u16()?, }) } } diff --git a/src/sheet/collectables_shop_item_group.rs b/src/sheet/collectables_shop_item_group.rs index b0d9761b..c8070f69 100644 --- a/src/sheet/collectables_shop_item_group.rs +++ b/src/sheet/collectables_shop_item_group.rs @@ -1,8 +1,8 @@ -use ironworks::excel::Row; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; +use ironworks::excel::Row; use ironworks::sestring::SeString; -use crate::error::PopulateError; +use std::result::Result; impl MetadataAdapter for CollectablesShopItemGroup { fn name() -> String { "CollectablesShopItemGroup".to_string() diff --git a/src/sheet/collectables_shop_refine.rs b/src/sheet/collectables_shop_refine.rs index 60d3dc04..2d308667 100644 --- a/src/sheet/collectables_shop_refine.rs +++ b/src/sheet/collectables_shop_refine.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; -use std::result::Result; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for CollectablesShopRefine { fn name() -> String { "CollectablesShopRefine".to_string() diff --git a/src/sheet/collectables_shop_reward_item.rs b/src/sheet/collectables_shop_reward_item.rs index 7224cde6..226dddd7 100644 --- a/src/sheet/collectables_shop_reward_item.rs +++ b/src/sheet/collectables_shop_reward_item.rs @@ -1,7 +1,7 @@ -use std::result::Result; -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 CollectablesShopRewardItem { fn name() -> String { "CollectablesShopRewardItem".to_string() @@ -18,6 +18,11 @@ pub struct CollectablesShopRewardItem { pub r#reward_low: u8, pub r#reward_mid: u8, pub r#reward_high: u8, + pub r#unknown5: u32, + pub r#unknown6: bool, + pub r#unknown7: u8, + pub r#unknown8: u8, + pub r#unknown9: u8, } impl CollectablesShopRewardItem { pub fn populate(row: &Row, offset: usize) -> Result { @@ -27,6 +32,11 @@ impl CollectablesShopRewardItem { r#reward_low: row.field(2usize + offset)?.into_u8()?, r#reward_mid: row.field(3usize + offset)?.into_u8()?, r#reward_high: row.field(4usize + offset)?.into_u8()?, + r#unknown5: row.field(5usize + offset)?.into_u32()?, + r#unknown6: row.field(6usize + offset)?.into_bool()?, + r#unknown7: row.field(7usize + offset)?.into_u8()?, + r#unknown8: row.field(8usize + offset)?.into_u8()?, + r#unknown9: row.field(9usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/collectables_shop_reward_scrip.rs b/src/sheet/collectables_shop_reward_scrip.rs index 68699286..2b0215d2 100644 --- a/src/sheet/collectables_shop_reward_scrip.rs +++ b/src/sheet/collectables_shop_reward_scrip.rs @@ -1,7 +1,7 @@ -use std::result::Result; -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 CollectablesShopRewardScrip { fn name() -> String { "CollectablesShopRewardScrip".to_string() diff --git a/src/sheet/companion.rs b/src/sheet/companion.rs index 01437f62..38b9e3da 100644 --- a/src/sheet/companion.rs +++ b/src/sheet/companion.rs @@ -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 ironworks::excel::Row; -use crate::error::PopulateError; impl MetadataAdapter for Companion { fn name() -> String { "Companion".to_string() @@ -31,26 +31,28 @@ pub struct Companion { pub r#behavior: u8, pub r#special: u8, pub r#wandering_wait: u8, - pub r#priority: u16, - pub r#unknown18: bool, - pub r#unknown19: bool, + pub r#priority: u8, + pub r#unknown18: u8, + pub r#unknown19: u16, pub r#unknown20: bool, pub r#unknown21: bool, pub r#unknown22: bool, - pub r#enemy: u16, + pub r#enemy: bool, pub r#battle: bool, - pub r#roulette: bool, + pub r#roulette: u16, + pub r#unknown26: bool, + pub r#unknown27: bool, pub r#icon: u16, pub r#order: u16, pub r#idle_animation: bool, - pub r#unknown29: u8, + pub r#unknown31: u8, pub r#cost: u8, pub r#hp: u16, - pub r#unknown32: u8, + pub r#unknown34: u8, pub r#skill_angle: u16, pub r#skill_cost: u8, - pub r#unknown35: u8, - pub r#unknown36: u16, + pub r#unknown37: u8, + pub r#unknown38: u16, pub r#minion_race: u8, } impl Companion { @@ -73,27 +75,29 @@ impl Companion { r#behavior: row.field(14usize + offset)?.into_u8()?, r#special: row.field(15usize + offset)?.into_u8()?, r#wandering_wait: row.field(16usize + offset)?.into_u8()?, - r#priority: row.field(17usize + offset)?.into_u16()?, - r#unknown18: row.field(18usize + offset)?.into_bool()?, - r#unknown19: row.field(19usize + offset)?.into_bool()?, + r#priority: row.field(17usize + offset)?.into_u8()?, + r#unknown18: row.field(18usize + offset)?.into_u8()?, + r#unknown19: row.field(19usize + offset)?.into_u16()?, r#unknown20: row.field(20usize + offset)?.into_bool()?, r#unknown21: row.field(21usize + offset)?.into_bool()?, r#unknown22: row.field(22usize + offset)?.into_bool()?, - r#enemy: row.field(23usize + offset)?.into_u16()?, + r#enemy: row.field(23usize + offset)?.into_bool()?, r#battle: row.field(24usize + offset)?.into_bool()?, - r#roulette: row.field(25usize + offset)?.into_bool()?, - r#icon: row.field(26usize + offset)?.into_u16()?, - r#order: row.field(27usize + offset)?.into_u16()?, - r#idle_animation: row.field(28usize + offset)?.into_bool()?, - r#unknown29: row.field(29usize + offset)?.into_u8()?, - r#cost: row.field(30usize + offset)?.into_u8()?, - r#hp: row.field(31usize + offset)?.into_u16()?, - r#unknown32: row.field(32usize + offset)?.into_u8()?, - r#skill_angle: row.field(33usize + offset)?.into_u16()?, - r#skill_cost: row.field(34usize + offset)?.into_u8()?, - r#unknown35: row.field(35usize + offset)?.into_u8()?, - r#unknown36: row.field(36usize + offset)?.into_u16()?, - r#minion_race: row.field(37usize + offset)?.into_u8()?, + r#roulette: row.field(25usize + offset)?.into_u16()?, + r#unknown26: row.field(26usize + offset)?.into_bool()?, + r#unknown27: row.field(27usize + offset)?.into_bool()?, + r#icon: row.field(28usize + offset)?.into_u16()?, + r#order: row.field(29usize + offset)?.into_u16()?, + r#idle_animation: row.field(30usize + offset)?.into_bool()?, + r#unknown31: row.field(31usize + offset)?.into_u8()?, + r#cost: row.field(32usize + offset)?.into_u8()?, + r#hp: row.field(33usize + offset)?.into_u16()?, + r#unknown34: row.field(34usize + offset)?.into_u8()?, + r#skill_angle: row.field(35usize + offset)?.into_u16()?, + r#skill_cost: row.field(36usize + offset)?.into_u8()?, + r#unknown37: row.field(37usize + offset)?.into_u8()?, + r#unknown38: row.field(38usize + offset)?.into_u16()?, + r#minion_race: row.field(39usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/companion_move.rs b/src/sheet/companion_move.rs index 0c453e34..adb5cf31 100644 --- a/src/sheet/companion_move.rs +++ b/src/sheet/companion_move.rs @@ -1,8 +1,8 @@ -use std::result::Result; -use ironworks::excel::Row; -use ironworks::sestring::SeString; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for CompanionMove { fn name() -> String { "CompanionMove".to_string() diff --git a/src/sheet/companion_transient.rs b/src/sheet/companion_transient.rs index dc98e470..03512728 100644 --- a/src/sheet/companion_transient.rs +++ b/src/sheet/companion_transient.rs @@ -1,8 +1,8 @@ -use ironworks::sestring::SeString; -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 std::result::Result; impl MetadataAdapter for CompanionTransient { fn name() -> String { "CompanionTransient".to_string() diff --git a/src/sheet/company_action.rs b/src/sheet/company_action.rs index ccfa0229..d8d9f784 100644 --- a/src/sheet/company_action.rs +++ b/src/sheet/company_action.rs @@ -1,8 +1,8 @@ -use ironworks::excel::Row; -use std::result::Result; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for CompanyAction { fn name() -> String { "CompanyAction".to_string() diff --git a/src/sheet/company_craft_draft.rs b/src/sheet/company_craft_draft.rs index e9a147a3..d1feea17 100644 --- a/src/sheet/company_craft_draft.rs +++ b/src/sheet/company_craft_draft.rs @@ -1,8 +1,8 @@ -use ironworks::sestring::SeString; use crate::error::PopulateError; -use crate::utility::read_array; use crate::metadata::MetadataAdapter; +use crate::utility::read_array; use ironworks::excel::Row; +use ironworks::sestring::SeString; use std::result::Result; use std::vec::Vec; impl MetadataAdapter for CompanyCraftDraft { diff --git a/src/sheet/company_craft_draft_category.rs b/src/sheet/company_craft_draft_category.rs index 57b4313f..7225d757 100644 --- a/src/sheet/company_craft_draft_category.rs +++ b/src/sheet/company_craft_draft_category.rs @@ -1,9 +1,9 @@ -use std::result::Result; -use ironworks::sestring::SeString; -use ironworks::excel::Row; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use crate::utility::read_array; -use crate::error::PopulateError; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; use std::vec::Vec; impl MetadataAdapter for CompanyCraftDraftCategory { fn name() -> String { diff --git a/src/sheet/company_craft_manufactory_state.rs b/src/sheet/company_craft_manufactory_state.rs index c405ebb7..51029017 100644 --- a/src/sheet/company_craft_manufactory_state.rs +++ b/src/sheet/company_craft_manufactory_state.rs @@ -1,8 +1,8 @@ -use std::result::Result; +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 CompanyCraftManufactoryState { fn name() -> String { "CompanyCraftManufactoryState".to_string() diff --git a/src/sheet/company_craft_part.rs b/src/sheet/company_craft_part.rs index 3264ae2f..40380122 100644 --- a/src/sheet/company_craft_part.rs +++ b/src/sheet/company_craft_part.rs @@ -1,9 +1,9 @@ -use std::result::Result; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::vec::Vec; use crate::utility::read_array; -use crate::error::PopulateError; use ironworks::excel::Row; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for CompanyCraftPart { fn name() -> String { "CompanyCraftPart".to_string() @@ -18,6 +18,7 @@ pub struct CompanyCraftPart { pub r#unknown0: u8, pub r#company_craft_type: u8, pub r#company_craft_process: Vec, + pub r#unknown5: u16, } impl CompanyCraftPart { pub fn populate(row: &Row, offset: usize) -> Result { @@ -30,6 +31,7 @@ impl CompanyCraftPart { 1usize, |offset| { Result::Ok(row.field(2usize + offset)?.into_u16()?) }, )?, + r#unknown5: row.field(5usize + offset)?.into_u16()?, }) } } diff --git a/src/sheet/company_craft_process.rs b/src/sheet/company_craft_process.rs index 8d717e55..6b07a5c9 100644 --- a/src/sheet/company_craft_process.rs +++ b/src/sheet/company_craft_process.rs @@ -1,9 +1,9 @@ -use std::vec::Vec; -use ironworks::excel::Row; use crate::error::PopulateError; -use std::result::Result; -use crate::utility::read_array; use crate::metadata::MetadataAdapter; +use crate::utility::read_array; +use ironworks::excel::Row; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for CompanyCraftProcess { fn name() -> String { "CompanyCraftProcess".to_string() diff --git a/src/sheet/company_craft_sequence.rs b/src/sheet/company_craft_sequence.rs index 5ca4e3bc..40902091 100644 --- a/src/sheet/company_craft_sequence.rs +++ b/src/sheet/company_craft_sequence.rs @@ -1,9 +1,9 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use crate::utility::read_array; -use crate::error::PopulateError; -use std::vec::Vec; -use std::result::Result; use ironworks::excel::Row; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for CompanyCraftSequence { fn name() -> String { "CompanyCraftSequence".to_string() diff --git a/src/sheet/company_craft_supply_item.rs b/src/sheet/company_craft_supply_item.rs index 497770d4..eaebaaac 100644 --- a/src/sheet/company_craft_supply_item.rs +++ b/src/sheet/company_craft_supply_item.rs @@ -1,6 +1,6 @@ use crate::error::PopulateError; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use std::result::Result; impl MetadataAdapter for CompanyCraftSupplyItem { fn name() -> String { diff --git a/src/sheet/company_craft_type.rs b/src/sheet/company_craft_type.rs index 48a64539..24bd682a 100644 --- a/src/sheet/company_craft_type.rs +++ b/src/sheet/company_craft_type.rs @@ -1,8 +1,8 @@ -use ironworks::excel::Row; -use std::result::Result; -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for CompanyCraftType { fn name() -> String { "CompanyCraftType".to_string() diff --git a/src/sheet/company_leve.rs b/src/sheet/company_leve.rs index 6aea9deb..47ba12a3 100644 --- a/src/sheet/company_leve.rs +++ b/src/sheet/company_leve.rs @@ -1,9 +1,9 @@ -use std::vec::Vec; use crate::error::PopulateError; -use std::result::Result; +use crate::metadata::MetadataAdapter; use crate::utility::read_array; use ironworks::excel::Row; -use crate::metadata::MetadataAdapter; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for CompanyLeve { fn name() -> String { "CompanyLeve".to_string() diff --git a/src/sheet/company_leve_rule.rs b/src/sheet/company_leve_rule.rs index b1a7df62..9cef77fc 100644 --- a/src/sheet/company_leve_rule.rs +++ b/src/sheet/company_leve_rule.rs @@ -1,8 +1,8 @@ use crate::error::PopulateError; -use std::result::Result; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for CompanyLeveRule { fn name() -> String { "CompanyLeveRule".to_string() diff --git a/src/sheet/complete_journal.rs b/src/sheet/complete_journal.rs index b26c417f..ebaec807 100644 --- a/src/sheet/complete_journal.rs +++ b/src/sheet/complete_journal.rs @@ -1,10 +1,10 @@ +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 std::vec::Vec; -use ironworks::sestring::SeString; -use crate::utility::read_array; -use crate::metadata::MetadataAdapter; -use crate::error::PopulateError; impl MetadataAdapter for CompleteJournal { fn name() -> String { "CompleteJournal".to_string() diff --git a/src/sheet/complete_journal_category.rs b/src/sheet/complete_journal_category.rs index 0ed741c3..0a284d29 100644 --- a/src/sheet/complete_journal_category.rs +++ b/src/sheet/complete_journal_category.rs @@ -1,7 +1,7 @@ -use crate::metadata::MetadataAdapter; -use std::result::Result; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for CompleteJournalCategory { fn name() -> String { "CompleteJournalCategory".to_string() @@ -15,12 +15,14 @@ impl MetadataAdapter for CompleteJournalCategory { pub struct CompleteJournalCategory { pub r#first_quest: u32, pub r#last_quest: u32, + pub r#unknown2: i32, } impl CompleteJournalCategory { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#first_quest: row.field(0usize + offset)?.into_u32()?, r#last_quest: row.field(1usize + offset)?.into_u32()?, + r#unknown2: row.field(2usize + offset)?.into_i32()?, }) } } diff --git a/src/sheet/completion.rs b/src/sheet/completion.rs index b3f04542..a2c7dc45 100644 --- a/src/sheet/completion.rs +++ b/src/sheet/completion.rs @@ -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 Completion { fn name() -> String { "Completion".to_string() diff --git a/src/sheet/condition.rs b/src/sheet/condition.rs index 7cb2c726..f9bb2d9a 100644 --- a/src/sheet/condition.rs +++ b/src/sheet/condition.rs @@ -1,7 +1,7 @@ use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for Condition { fn name() -> String { "Condition".to_string() @@ -16,6 +16,7 @@ pub struct Condition { pub r#unknown0: bool, pub r#unknown1: u8, pub r#log_message: u32, + pub r#unknown3: u8, } impl Condition { pub fn populate(row: &Row, offset: usize) -> Result { @@ -23,6 +24,7 @@ impl Condition { r#unknown0: row.field(0usize + offset)?.into_bool()?, r#unknown1: row.field(1usize + offset)?.into_u8()?, r#log_message: row.field(2usize + offset)?.into_u32()?, + r#unknown3: row.field(3usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/config_key.rs b/src/sheet/config_key.rs index 4ba5fddc..2e1f511a 100644 --- a/src/sheet/config_key.rs +++ b/src/sheet/config_key.rs @@ -1,8 +1,8 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; -use ironworks::sestring::SeString; use ironworks::excel::Row; -use crate::error::PopulateError; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for ConfigKey { fn name() -> String { "ConfigKey".to_string() diff --git a/src/sheet/content_close_cycle.rs b/src/sheet/content_close_cycle.rs index 08f920a4..77a36ecd 100644 --- a/src/sheet/content_close_cycle.rs +++ b/src/sheet/content_close_cycle.rs @@ -15,12 +15,34 @@ impl MetadataAdapter for ContentCloseCycle { pub struct ContentCloseCycle { pub r#unixtime: u32, pub r#time_seconds: u32, + pub r#unknown2: u32, + pub r#unknown3: bool, + pub r#unknown4: bool, + pub r#unknown5: bool, + pub r#unknown6: bool, + pub r#unknown7: bool, + pub r#unknown8: bool, + pub r#unknown9: bool, + pub r#unknown10: bool, + pub r#unknown11: bool, + pub r#unknown12: bool, } impl ContentCloseCycle { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#unixtime: row.field(0usize + offset)?.into_u32()?, r#time_seconds: row.field(1usize + offset)?.into_u32()?, + r#unknown2: row.field(2usize + offset)?.into_u32()?, + r#unknown3: row.field(3usize + offset)?.into_bool()?, + r#unknown4: row.field(4usize + offset)?.into_bool()?, + r#unknown5: row.field(5usize + offset)?.into_bool()?, + r#unknown6: row.field(6usize + offset)?.into_bool()?, + r#unknown7: row.field(7usize + offset)?.into_bool()?, + r#unknown8: row.field(8usize + offset)?.into_bool()?, + r#unknown9: row.field(9usize + offset)?.into_bool()?, + r#unknown10: row.field(10usize + offset)?.into_bool()?, + r#unknown11: row.field(11usize + offset)?.into_bool()?, + r#unknown12: row.field(12usize + offset)?.into_bool()?, }) } } diff --git a/src/sheet/content_event_item.rs b/src/sheet/content_event_item.rs index 34a083dd..d29e5858 100644 --- a/src/sheet/content_event_item.rs +++ b/src/sheet/content_event_item.rs @@ -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 ContentEventItem { fn name() -> String { "ContentEventItem".to_string() @@ -12,9 +12,13 @@ impl MetadataAdapter for ContentEventItem { } } #[derive(Debug)] -pub struct ContentEventItem {} +pub struct ContentEventItem { + pub r#unknown0: u32, +} impl ContentEventItem { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u32()?, + }) } } diff --git a/src/sheet/content_ex_action.rs b/src/sheet/content_ex_action.rs index 8947b8fc..0a0e301e 100644 --- a/src/sheet/content_ex_action.rs +++ b/src/sheet/content_ex_action.rs @@ -1,6 +1,6 @@ -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use std::result::Result; impl MetadataAdapter for ContentExAction { fn name() -> String { @@ -16,6 +16,7 @@ pub struct ContentExAction { pub r#name: u32, pub r#unknown1: u32, pub r#charges: u8, + pub r#unknown3: u8, } impl ContentExAction { pub fn populate(row: &Row, offset: usize) -> Result { @@ -23,6 +24,7 @@ impl ContentExAction { r#name: row.field(0usize + offset)?.into_u32()?, r#unknown1: row.field(1usize + offset)?.into_u32()?, r#charges: row.field(2usize + offset)?.into_u8()?, + r#unknown3: row.field(3usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/content_finder_condition.rs b/src/sheet/content_finder_condition.rs index 2666752f..961fae05 100644 --- a/src/sheet/content_finder_condition.rs +++ b/src/sheet/content_finder_condition.rs @@ -1,8 +1,8 @@ -use crate::metadata::MetadataAdapter; 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 ContentFinderCondition { fn name() -> String { "ContentFinderCondition".to_string() @@ -19,68 +19,100 @@ pub struct ContentFinderCondition { pub r#content_link_type: u8, pub r#content: u16, pub r#pv_p: bool, - pub r#unknown5: u8, - pub r#unknown6: u32, + pub r#unknown5: bool, + pub r#unknown6: u8, pub r#unknown7: u32, + pub r#unknown8: u32, pub r#accept_class_job_category: u8, pub r#content_member_type: u8, - pub r#unknown10: u8, pub r#unknown11: u8, pub r#unknown12: u8, + pub r#unknown13: u8, pub r#unlock_quest: u32, - pub r#unknown14: u8, - pub r#unknown15: u32, + pub r#unknown15: u8, + pub r#unknown16: u32, pub r#class_job_level_required: u8, pub r#class_job_level_sync: u8, pub r#item_level_required: u16, pub r#item_level_sync: u16, - pub r#unknown20: bool, + pub r#unknown21: bool, pub r#allow_undersized: bool, - pub r#allow_replacement: bool, pub r#unknown23: bool, - pub r#allow_explorer_mode: bool, - pub r#unknown25: bool, + pub r#unknown24: bool, + pub r#allow_replacement: bool, pub r#unknown26: bool, - pub r#unknown27: u8, + pub r#allow_explorer_mode: bool, pub r#unknown28: bool, + pub r#unknown29: bool, + pub r#unknown30: u8, + pub r#unknown31: bool, pub r#high_end_duty: bool, - pub r#unknown30: bool, - pub r#unknown31: u8, - pub r#unknown32: bool, pub r#unknown33: bool, - pub r#duty_recorder_allowed: bool, - pub r#unknown35: bool, + pub r#unknown34: bool, + pub r#unknown35: u8, pub r#unknown36: bool, pub r#unknown37: bool, - pub r#unknown38: bool, + pub r#duty_recorder_allowed: bool, + pub r#unknown39: bool, + pub r#unknown40: bool, + pub r#unknown41: bool, + pub r#unknown42: bool, pub r#name: SeString, pub r#name_short: SeString, pub r#content_type: u8, pub r#transient_key: u8, + pub r#unknown47: u32, pub r#transient: u32, pub r#sort_key: u16, pub r#image: u32, pub r#icon: u32, - pub r#unknown47: i8, - pub r#unknown48: i32, - pub r#unknown49: bool, - pub r#level506070_roulette: u8, - pub r#leveling_roulette: bool, + pub r#unknown52: i8, + pub r#unknown53: i32, + pub r#unknown54: bool, + pub r#unknown55: bool, + pub r#unknown56: i32, + pub r#leveling_roulette: u8, + pub r#high_level_roulette: bool, pub r#msq_roulette: bool, pub r#guild_hest_roulette: bool, pub r#expert_roulette: bool, pub r#trial_roulette: bool, pub r#daily_frontline_challenge: bool, - pub r#level80_roulette: bool, + pub r#level_cap_roulette: bool, pub r#mentor_roulette: bool, - pub r#unknown59: bool, - pub r#unknown60: bool, - pub r#unknown61: bool, - pub r#unknown62: bool, - pub r#unknown63: bool, + pub r#unknown66: bool, + pub r#unknown67: bool, + pub r#unknown68: bool, + pub r#unknown69: bool, + pub r#unknown70: bool, pub r#alliance_roulette: bool, pub r#feast_team_roulette: bool, pub r#normal_raid_roulette: bool, + pub r#unknown74: bool, + pub r#unknown75: bool, + pub r#unknown76: bool, + pub r#unknown77: bool, + pub r#unknown78: bool, + pub r#unknown79: bool, + pub r#unknown80: bool, + pub r#unknown81: bool, + pub r#unknown82: bool, + pub r#unknown83: bool, + pub r#unknown84: bool, + pub r#unknown85: bool, + pub r#unknown86: bool, + pub r#unknown87: bool, + pub r#unknown88: bool, + pub r#unknown89: bool, + pub r#unknown90: bool, + pub r#unknown91: bool, + pub r#unknown92: bool, + pub r#unknown93: bool, + pub r#unknown94: bool, + pub r#unknown95: bool, + pub r#unknown96: bool, + pub r#unknown97: bool, + pub r#unknown98: bool, } impl ContentFinderCondition { pub fn populate(row: &Row, offset: usize) -> Result { @@ -90,68 +122,100 @@ impl ContentFinderCondition { r#content_link_type: row.field(2usize + offset)?.into_u8()?, r#content: row.field(3usize + offset)?.into_u16()?, r#pv_p: row.field(4usize + offset)?.into_bool()?, - r#unknown5: row.field(5usize + offset)?.into_u8()?, - r#unknown6: row.field(6usize + offset)?.into_u32()?, + r#unknown5: row.field(5usize + offset)?.into_bool()?, + r#unknown6: row.field(6usize + offset)?.into_u8()?, r#unknown7: row.field(7usize + offset)?.into_u32()?, - r#accept_class_job_category: row.field(8usize + offset)?.into_u8()?, - r#content_member_type: row.field(9usize + offset)?.into_u8()?, - r#unknown10: row.field(10usize + offset)?.into_u8()?, + r#unknown8: row.field(8usize + offset)?.into_u32()?, + r#accept_class_job_category: row.field(9usize + offset)?.into_u8()?, + r#content_member_type: row.field(10usize + offset)?.into_u8()?, r#unknown11: row.field(11usize + offset)?.into_u8()?, r#unknown12: row.field(12usize + offset)?.into_u8()?, - r#unlock_quest: row.field(13usize + offset)?.into_u32()?, - r#unknown14: row.field(14usize + offset)?.into_u8()?, - r#unknown15: row.field(15usize + offset)?.into_u32()?, - r#class_job_level_required: row.field(16usize + offset)?.into_u8()?, - r#class_job_level_sync: row.field(17usize + offset)?.into_u8()?, - r#item_level_required: row.field(18usize + offset)?.into_u16()?, - r#item_level_sync: row.field(19usize + offset)?.into_u16()?, - r#unknown20: row.field(20usize + offset)?.into_bool()?, - r#allow_undersized: row.field(21usize + offset)?.into_bool()?, - r#allow_replacement: row.field(22usize + offset)?.into_bool()?, + r#unknown13: row.field(13usize + offset)?.into_u8()?, + r#unlock_quest: row.field(14usize + offset)?.into_u32()?, + r#unknown15: row.field(15usize + offset)?.into_u8()?, + r#unknown16: row.field(16usize + offset)?.into_u32()?, + r#class_job_level_required: row.field(17usize + offset)?.into_u8()?, + r#class_job_level_sync: row.field(18usize + offset)?.into_u8()?, + r#item_level_required: row.field(19usize + offset)?.into_u16()?, + r#item_level_sync: row.field(20usize + offset)?.into_u16()?, + r#unknown21: row.field(21usize + offset)?.into_bool()?, + r#allow_undersized: row.field(22usize + offset)?.into_bool()?, r#unknown23: row.field(23usize + offset)?.into_bool()?, - r#allow_explorer_mode: row.field(24usize + offset)?.into_bool()?, - r#unknown25: row.field(25usize + offset)?.into_bool()?, + r#unknown24: row.field(24usize + offset)?.into_bool()?, + r#allow_replacement: row.field(25usize + offset)?.into_bool()?, r#unknown26: row.field(26usize + offset)?.into_bool()?, - r#unknown27: row.field(27usize + offset)?.into_u8()?, + r#allow_explorer_mode: row.field(27usize + offset)?.into_bool()?, r#unknown28: row.field(28usize + offset)?.into_bool()?, - r#high_end_duty: row.field(29usize + offset)?.into_bool()?, - r#unknown30: row.field(30usize + offset)?.into_bool()?, - r#unknown31: row.field(31usize + offset)?.into_u8()?, - r#unknown32: row.field(32usize + offset)?.into_bool()?, + r#unknown29: row.field(29usize + offset)?.into_bool()?, + r#unknown30: row.field(30usize + offset)?.into_u8()?, + r#unknown31: row.field(31usize + offset)?.into_bool()?, + r#high_end_duty: row.field(32usize + offset)?.into_bool()?, r#unknown33: row.field(33usize + offset)?.into_bool()?, - r#duty_recorder_allowed: row.field(34usize + offset)?.into_bool()?, - r#unknown35: row.field(35usize + offset)?.into_bool()?, + r#unknown34: row.field(34usize + offset)?.into_bool()?, + r#unknown35: row.field(35usize + offset)?.into_u8()?, r#unknown36: row.field(36usize + offset)?.into_bool()?, r#unknown37: row.field(37usize + offset)?.into_bool()?, - r#unknown38: row.field(38usize + offset)?.into_bool()?, - r#name: row.field(39usize + offset)?.into_string()?, - r#name_short: row.field(40usize + offset)?.into_string()?, - r#content_type: row.field(41usize + offset)?.into_u8()?, - r#transient_key: row.field(42usize + offset)?.into_u8()?, - r#transient: row.field(43usize + offset)?.into_u32()?, - r#sort_key: row.field(44usize + offset)?.into_u16()?, - r#image: row.field(45usize + offset)?.into_u32()?, - r#icon: row.field(46usize + offset)?.into_u32()?, - r#unknown47: row.field(47usize + offset)?.into_i8()?, - r#unknown48: row.field(48usize + offset)?.into_i32()?, - r#unknown49: row.field(49usize + offset)?.into_bool()?, - r#level506070_roulette: row.field(50usize + offset)?.into_u8()?, - r#leveling_roulette: row.field(51usize + offset)?.into_bool()?, - r#msq_roulette: row.field(52usize + offset)?.into_bool()?, - r#guild_hest_roulette: row.field(53usize + offset)?.into_bool()?, - r#expert_roulette: row.field(54usize + offset)?.into_bool()?, - r#trial_roulette: row.field(55usize + offset)?.into_bool()?, - r#daily_frontline_challenge: row.field(56usize + offset)?.into_bool()?, - r#level80_roulette: row.field(57usize + offset)?.into_bool()?, - r#mentor_roulette: row.field(58usize + offset)?.into_bool()?, - r#unknown59: row.field(59usize + offset)?.into_bool()?, - r#unknown60: row.field(60usize + offset)?.into_bool()?, - 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#alliance_roulette: row.field(64usize + offset)?.into_bool()?, - r#feast_team_roulette: row.field(65usize + offset)?.into_bool()?, - r#normal_raid_roulette: row.field(66usize + offset)?.into_bool()?, + r#duty_recorder_allowed: row.field(38usize + offset)?.into_bool()?, + r#unknown39: row.field(39usize + offset)?.into_bool()?, + r#unknown40: row.field(40usize + offset)?.into_bool()?, + r#unknown41: row.field(41usize + offset)?.into_bool()?, + r#unknown42: row.field(42usize + offset)?.into_bool()?, + r#name: row.field(43usize + offset)?.into_string()?, + r#name_short: row.field(44usize + offset)?.into_string()?, + r#content_type: row.field(45usize + offset)?.into_u8()?, + r#transient_key: row.field(46usize + offset)?.into_u8()?, + r#unknown47: row.field(47usize + offset)?.into_u32()?, + r#transient: row.field(48usize + offset)?.into_u32()?, + r#sort_key: row.field(49usize + offset)?.into_u16()?, + r#image: row.field(50usize + offset)?.into_u32()?, + r#icon: row.field(51usize + offset)?.into_u32()?, + r#unknown52: row.field(52usize + offset)?.into_i8()?, + r#unknown53: row.field(53usize + offset)?.into_i32()?, + r#unknown54: row.field(54usize + offset)?.into_bool()?, + r#unknown55: row.field(55usize + offset)?.into_bool()?, + r#unknown56: row.field(56usize + offset)?.into_i32()?, + r#leveling_roulette: row.field(57usize + offset)?.into_u8()?, + r#high_level_roulette: row.field(58usize + offset)?.into_bool()?, + r#msq_roulette: row.field(59usize + offset)?.into_bool()?, + r#guild_hest_roulette: row.field(60usize + offset)?.into_bool()?, + r#expert_roulette: row.field(61usize + offset)?.into_bool()?, + r#trial_roulette: row.field(62usize + offset)?.into_bool()?, + r#daily_frontline_challenge: row.field(63usize + offset)?.into_bool()?, + r#level_cap_roulette: row.field(64usize + offset)?.into_bool()?, + r#mentor_roulette: row.field(65usize + offset)?.into_bool()?, + r#unknown66: row.field(66usize + offset)?.into_bool()?, + r#unknown67: 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_bool()?, + r#alliance_roulette: row.field(71usize + offset)?.into_bool()?, + r#feast_team_roulette: row.field(72usize + offset)?.into_bool()?, + r#normal_raid_roulette: row.field(73usize + offset)?.into_bool()?, + r#unknown74: row.field(74usize + offset)?.into_bool()?, + r#unknown75: row.field(75usize + offset)?.into_bool()?, + r#unknown76: row.field(76usize + offset)?.into_bool()?, + r#unknown77: row.field(77usize + offset)?.into_bool()?, + r#unknown78: row.field(78usize + offset)?.into_bool()?, + r#unknown79: row.field(79usize + offset)?.into_bool()?, + r#unknown80: row.field(80usize + offset)?.into_bool()?, + r#unknown81: row.field(81usize + offset)?.into_bool()?, + r#unknown82: row.field(82usize + offset)?.into_bool()?, + r#unknown83: row.field(83usize + offset)?.into_bool()?, + r#unknown84: row.field(84usize + offset)?.into_bool()?, + r#unknown85: row.field(85usize + offset)?.into_bool()?, + r#unknown86: row.field(86usize + offset)?.into_bool()?, + r#unknown87: row.field(87usize + offset)?.into_bool()?, + r#unknown88: row.field(88usize + offset)?.into_bool()?, + r#unknown89: row.field(89usize + offset)?.into_bool()?, + r#unknown90: row.field(90usize + offset)?.into_bool()?, + r#unknown91: row.field(91usize + offset)?.into_bool()?, + r#unknown92: row.field(92usize + offset)?.into_bool()?, + r#unknown93: row.field(93usize + offset)?.into_bool()?, + r#unknown94: row.field(94usize + offset)?.into_bool()?, + r#unknown95: row.field(95usize + offset)?.into_bool()?, + r#unknown96: row.field(96usize + offset)?.into_bool()?, + r#unknown97: row.field(97usize + offset)?.into_bool()?, + r#unknown98: row.field(98usize + offset)?.into_bool()?, }) } } diff --git a/src/sheet/content_finder_condition_transient.rs b/src/sheet/content_finder_condition_transient.rs index 3bbf6773..f7c7244b 100644 --- a/src/sheet/content_finder_condition_transient.rs +++ b/src/sheet/content_finder_condition_transient.rs @@ -1,8 +1,8 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; -use std::result::Result; -use crate::error::PopulateError; use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for ContentFinderConditionTransient { fn name() -> String { "ContentFinderConditionTransient".to_string() diff --git a/src/sheet/content_gauge.rs b/src/sheet/content_gauge.rs index b32b32fe..ae6b779a 100644 --- a/src/sheet/content_gauge.rs +++ b/src/sheet/content_gauge.rs @@ -1,7 +1,7 @@ use crate::error::PopulateError; -use ironworks::sestring::SeString; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; use std::result::Result; impl MetadataAdapter for ContentGauge { fn name() -> String { @@ -19,6 +19,13 @@ pub struct ContentGauge { pub r#color: u8, pub r#unknown3: bool, pub r#text_string: SeString, + pub r#unknown5: i16, + pub r#unknown6: i8, + pub r#unknown7: u8, + pub r#unknown8: i16, + pub r#unknown9: i8, + pub r#unknown10: u8, + pub r#unknown11: i16, } impl ContentGauge { pub fn populate(row: &Row, offset: usize) -> Result { @@ -28,6 +35,13 @@ impl ContentGauge { r#color: row.field(2usize + offset)?.into_u8()?, r#unknown3: row.field(3usize + offset)?.into_bool()?, r#text_string: row.field(4usize + offset)?.into_string()?, + r#unknown5: row.field(5usize + offset)?.into_i16()?, + r#unknown6: row.field(6usize + offset)?.into_i8()?, + r#unknown7: row.field(7usize + offset)?.into_u8()?, + r#unknown8: row.field(8usize + offset)?.into_i16()?, + r#unknown9: row.field(9usize + offset)?.into_i8()?, + r#unknown10: row.field(10usize + offset)?.into_u8()?, + r#unknown11: row.field(11usize + offset)?.into_i16()?, }) } } diff --git a/src/sheet/content_gauge_color.rs b/src/sheet/content_gauge_color.rs index 69fcb97a..300ddd2d 100644 --- a/src/sheet/content_gauge_color.rs +++ b/src/sheet/content_gauge_color.rs @@ -1,6 +1,6 @@ -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use std::result::Result; impl MetadataAdapter for ContentGaugeColor { fn name() -> String { diff --git a/src/sheet/content_member_type.rs b/src/sheet/content_member_type.rs index 4a1c9706..584da028 100644 --- a/src/sheet/content_member_type.rs +++ b/src/sheet/content_member_type.rs @@ -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 ContentMemberType { fn name() -> String { "ContentMemberType".to_string() @@ -27,6 +27,13 @@ pub struct ContentMemberType { pub r#healers_per_party: u8, pub r#melees_per_party: u8, pub r#ranged_per_party: u8, + pub r#unknown14: u8, + pub r#unknown15: bool, + pub r#unknown16: bool, + pub r#unknown17: u8, + pub r#unknown18: bool, + pub r#unknown19: bool, + pub r#unknown20: bool, } impl ContentMemberType { pub fn populate(row: &Row, offset: usize) -> Result { @@ -45,6 +52,13 @@ impl ContentMemberType { r#healers_per_party: row.field(11usize + offset)?.into_u8()?, r#melees_per_party: row.field(12usize + offset)?.into_u8()?, r#ranged_per_party: row.field(13usize + offset)?.into_u8()?, + r#unknown14: row.field(14usize + offset)?.into_u8()?, + r#unknown15: row.field(15usize + offset)?.into_bool()?, + r#unknown16: row.field(16usize + offset)?.into_bool()?, + r#unknown17: row.field(17usize + offset)?.into_u8()?, + r#unknown18: row.field(18usize + offset)?.into_bool()?, + r#unknown19: row.field(19usize + offset)?.into_bool()?, + r#unknown20: row.field(20usize + offset)?.into_bool()?, }) } } diff --git a/src/sheet/content_npc.rs b/src/sheet/content_npc.rs new file mode 100644 index 00000000..d487a941 --- /dev/null +++ b/src/sheet/content_npc.rs @@ -0,0 +1,26 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; +impl MetadataAdapter for ContentNpc { + fn name() -> String { + "ContentNpc".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(ContentNpc::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct ContentNpc { + pub r#unknown0: bool, + pub r#unknown1: bool, +} +impl ContentNpc { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_bool()?, + r#unknown1: row.field(1usize + offset)?.into_bool()?, + }) + } +} diff --git a/src/sheet/content_npc_talk.rs b/src/sheet/content_npc_talk.rs index 97e2e45c..e8196197 100644 --- a/src/sheet/content_npc_talk.rs +++ b/src/sheet/content_npc_talk.rs @@ -1,9 +1,9 @@ use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use crate::utility::read_array; use ironworks::excel::Row; use std::result::Result; use std::vec::Vec; -use crate::metadata::MetadataAdapter; -use crate::utility::read_array; impl MetadataAdapter for ContentNpcTalk { fn name() -> String { "ContentNpcTalk".to_string() diff --git a/src/sheet/content_random_select.rs b/src/sheet/content_random_select.rs index 3b6f4d24..cb95b0c4 100644 --- a/src/sheet/content_random_select.rs +++ b/src/sheet/content_random_select.rs @@ -1,7 +1,7 @@ use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for ContentRandomSelect { fn name() -> String { "ContentRandomSelect".to_string() diff --git a/src/sheet/content_roulette.rs b/src/sheet/content_roulette.rs index 29d4c621..b96fd0b6 100644 --- a/src/sheet/content_roulette.rs +++ b/src/sheet/content_roulette.rs @@ -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 ContentRoulette { fn name() -> String { "ContentRoulette".to_string() @@ -28,30 +28,41 @@ pub struct ContentRoulette { pub r#required_level: u8, pub r#unknown12: u8, pub r#item_level_required: u16, - pub r#unknown14: u16, + pub r#unknown14: bool, + pub r#unknown15: u16, pub r#icon: u32, pub r#content_roulette_role_bonus: u8, pub r#reward_tome_a: u16, pub r#reward_tome_b: u16, pub r#reward_tome_c: u16, - pub r#unknown20: u32, - pub r#unknown21: u16, + pub r#unknown21: u32, + pub r#unknown22: u16, + pub r#unknown23: u32, pub r#sort_key: u8, - pub r#unknown23: u8, - pub r#content_member_type: u8, pub r#unknown25: u8, - pub r#unknown26: u8, - pub r#unknown27: i8, + pub r#content_member_type: u8, + pub r#unknown27: u8, pub r#unknown28: u8, - pub r#unknown29: u8, - pub r#unknown30: u8, + pub r#unknown29: i8, + pub r#unknown30: bool, pub r#unknown31: u8, - pub r#unknown32: bool, - pub r#unknown33: bool, - pub r#require_all_duties: bool, + pub r#unknown32: u8, + pub r#unknown33: u8, + pub r#unknown34: u8, pub r#unknown35: bool, - pub r#content_roulette_open_rule: u8, - pub r#instance_content: u16, + pub r#unknown36: bool, + pub r#require_all_duties: bool, + pub r#unknown38: bool, + pub r#content_roulette_open_rule: bool, + pub r#instance_content: u8, + pub r#unknown41: u16, + pub r#unknown42: bool, + pub r#unknown43: u8, + pub r#unknown44: bool, + pub r#unknown45: bool, + pub r#unknown46: bool, + pub r#unknown47: i32, + pub r#unknown48: u8, } impl ContentRoulette { pub fn populate(row: &Row, offset: usize) -> Result { @@ -70,30 +81,41 @@ impl ContentRoulette { r#required_level: row.field(11usize + offset)?.into_u8()?, r#unknown12: row.field(12usize + offset)?.into_u8()?, r#item_level_required: row.field(13usize + offset)?.into_u16()?, - r#unknown14: row.field(14usize + offset)?.into_u16()?, - r#icon: row.field(15usize + offset)?.into_u32()?, - r#content_roulette_role_bonus: row.field(16usize + offset)?.into_u8()?, - r#reward_tome_a: row.field(17usize + offset)?.into_u16()?, - r#reward_tome_b: row.field(18usize + offset)?.into_u16()?, - r#reward_tome_c: row.field(19usize + offset)?.into_u16()?, - r#unknown20: row.field(20usize + offset)?.into_u32()?, - r#unknown21: row.field(21usize + offset)?.into_u16()?, - r#sort_key: row.field(22usize + offset)?.into_u8()?, - r#unknown23: row.field(23usize + offset)?.into_u8()?, - r#content_member_type: row.field(24usize + offset)?.into_u8()?, + r#unknown14: row.field(14usize + offset)?.into_bool()?, + r#unknown15: row.field(15usize + offset)?.into_u16()?, + r#icon: row.field(16usize + offset)?.into_u32()?, + r#content_roulette_role_bonus: row.field(17usize + offset)?.into_u8()?, + r#reward_tome_a: row.field(18usize + offset)?.into_u16()?, + r#reward_tome_b: row.field(19usize + offset)?.into_u16()?, + r#reward_tome_c: row.field(20usize + offset)?.into_u16()?, + r#unknown21: row.field(21usize + offset)?.into_u32()?, + r#unknown22: row.field(22usize + offset)?.into_u16()?, + r#unknown23: row.field(23usize + offset)?.into_u32()?, + r#sort_key: row.field(24usize + offset)?.into_u8()?, r#unknown25: row.field(25usize + offset)?.into_u8()?, - r#unknown26: row.field(26usize + offset)?.into_u8()?, - r#unknown27: row.field(27usize + offset)?.into_i8()?, + r#content_member_type: row.field(26usize + offset)?.into_u8()?, + r#unknown27: row.field(27usize + offset)?.into_u8()?, r#unknown28: row.field(28usize + offset)?.into_u8()?, - r#unknown29: row.field(29usize + offset)?.into_u8()?, - r#unknown30: row.field(30usize + offset)?.into_u8()?, + r#unknown29: row.field(29usize + offset)?.into_i8()?, + r#unknown30: row.field(30usize + offset)?.into_bool()?, r#unknown31: row.field(31usize + offset)?.into_u8()?, - r#unknown32: row.field(32usize + offset)?.into_bool()?, - r#unknown33: row.field(33usize + offset)?.into_bool()?, - r#require_all_duties: row.field(34usize + offset)?.into_bool()?, + r#unknown32: row.field(32usize + offset)?.into_u8()?, + r#unknown33: row.field(33usize + offset)?.into_u8()?, + r#unknown34: row.field(34usize + offset)?.into_u8()?, r#unknown35: row.field(35usize + offset)?.into_bool()?, - r#content_roulette_open_rule: row.field(36usize + offset)?.into_u8()?, - r#instance_content: row.field(37usize + offset)?.into_u16()?, + r#unknown36: row.field(36usize + offset)?.into_bool()?, + r#require_all_duties: row.field(37usize + offset)?.into_bool()?, + r#unknown38: row.field(38usize + offset)?.into_bool()?, + r#content_roulette_open_rule: row.field(39usize + offset)?.into_bool()?, + r#instance_content: row.field(40usize + offset)?.into_u8()?, + r#unknown41: row.field(41usize + offset)?.into_u16()?, + r#unknown42: row.field(42usize + offset)?.into_bool()?, + r#unknown43: row.field(43usize + offset)?.into_u8()?, + r#unknown44: row.field(44usize + offset)?.into_bool()?, + r#unknown45: row.field(45usize + offset)?.into_bool()?, + r#unknown46: row.field(46usize + offset)?.into_bool()?, + r#unknown47: row.field(47usize + offset)?.into_i32()?, + r#unknown48: row.field(48usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/content_roulette_open_rule.rs b/src/sheet/content_roulette_open_rule.rs index 6e31efcd..12bca13e 100644 --- a/src/sheet/content_roulette_open_rule.rs +++ b/src/sheet/content_roulette_open_rule.rs @@ -1,7 +1,7 @@ -use crate::metadata::MetadataAdapter; -use std::result::Result; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for ContentRouletteOpenRule { fn name() -> String { "ContentRouletteOpenRule".to_string() diff --git a/src/sheet/content_roulette_role_bonus.rs b/src/sheet/content_roulette_role_bonus.rs index 0af746f3..83103831 100644 --- a/src/sheet/content_roulette_role_bonus.rs +++ b/src/sheet/content_roulette_role_bonus.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use std::result::Result; -use crate::error::PopulateError; impl MetadataAdapter for ContentRouletteRoleBonus { fn name() -> String { "ContentRouletteRoleBonus".to_string() @@ -21,6 +21,10 @@ pub struct ContentRouletteRoleBonus { pub r#unknown5: u16, pub r#item_reward_type: u32, pub r#reward_amount: u8, + pub r#unknown8: u8, + pub r#unknown9: u32, + pub r#unknown10: u8, + pub r#unknown11: u8, } impl ContentRouletteRoleBonus { pub fn populate(row: &Row, offset: usize) -> Result { @@ -33,6 +37,10 @@ impl ContentRouletteRoleBonus { r#unknown5: row.field(5usize + offset)?.into_u16()?, r#item_reward_type: row.field(6usize + offset)?.into_u32()?, r#reward_amount: row.field(7usize + offset)?.into_u8()?, + r#unknown8: row.field(8usize + offset)?.into_u8()?, + r#unknown9: row.field(9usize + offset)?.into_u32()?, + r#unknown10: row.field(10usize + offset)?.into_u8()?, + r#unknown11: row.field(11usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/content_talk.rs b/src/sheet/content_talk.rs index be0ea30d..d29c4ba7 100644 --- a/src/sheet/content_talk.rs +++ b/src/sheet/content_talk.rs @@ -1,7 +1,7 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use ironworks::sestring::SeString; use ironworks::excel::Row; -use crate::error::PopulateError; +use ironworks::sestring::SeString; use std::result::Result; impl MetadataAdapter for ContentTalk { fn name() -> String { diff --git a/src/sheet/content_talk_param.rs b/src/sheet/content_talk_param.rs index 8b890d03..d2fcba63 100644 --- a/src/sheet/content_talk_param.rs +++ b/src/sheet/content_talk_param.rs @@ -1,7 +1,7 @@ -use std::result::Result; -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for ContentTalkParam { fn name() -> String { "ContentTalkParam".to_string() @@ -16,6 +16,9 @@ pub struct ContentTalkParam { pub r#param: bool, pub r#unknown1: u8, pub r#test_action: u32, + pub r#unknown3: i8, + pub r#unknown4: i8, + pub r#unknown5: u8, } impl ContentTalkParam { pub fn populate(row: &Row, offset: usize) -> Result { @@ -23,6 +26,9 @@ impl ContentTalkParam { r#param: row.field(0usize + offset)?.into_bool()?, r#unknown1: row.field(1usize + offset)?.into_u8()?, r#test_action: row.field(2usize + offset)?.into_u32()?, + r#unknown3: row.field(3usize + offset)?.into_i8()?, + r#unknown4: row.field(4usize + offset)?.into_i8()?, + r#unknown5: row.field(5usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/content_type.rs b/src/sheet/content_type.rs index 230420b6..aef12c4c 100644 --- a/src/sheet/content_type.rs +++ b/src/sheet/content_type.rs @@ -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 ironworks::excel::Row; -use crate::error::PopulateError; impl MetadataAdapter for ContentType { fn name() -> String { "ContentType".to_string() @@ -17,6 +17,8 @@ pub struct ContentType { pub r#name: SeString, pub r#icon: u32, pub r#icon_duty_finder: u32, + pub r#unknown3: u8, + pub r#unknown4: u8, } impl ContentType { pub fn populate(row: &Row, offset: usize) -> Result { @@ -24,6 +26,8 @@ impl ContentType { r#name: row.field(0usize + offset)?.into_string()?, r#icon: row.field(1usize + offset)?.into_u32()?, r#icon_duty_finder: row.field(2usize + offset)?.into_u32()?, + r#unknown3: row.field(3usize + offset)?.into_u8()?, + r#unknown4: row.field(4usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/contents_note.rs b/src/sheet/contents_note.rs index ecdd8857..ebc36db5 100644 --- a/src/sheet/contents_note.rs +++ b/src/sheet/contents_note.rs @@ -1,8 +1,8 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; use ironworks::sestring::SeString; -use crate::error::PopulateError; use std::result::Result; -use crate::metadata::MetadataAdapter; impl MetadataAdapter for ContentsNote { fn name() -> String { "ContentsNote".to_string() diff --git a/src/sheet/contents_tutorial.rs b/src/sheet/contents_tutorial.rs index 1ddf25a1..81c43744 100644 --- a/src/sheet/contents_tutorial.rs +++ b/src/sheet/contents_tutorial.rs @@ -1,10 +1,10 @@ -use std::vec::Vec; -use ironworks::excel::Row; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use crate::utility::read_array; -use std::result::Result; +use ironworks::excel::Row; use ironworks::sestring::SeString; -use crate::metadata::MetadataAdapter; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for ContentsTutorial { fn name() -> String { "ContentsTutorial".to_string() @@ -16,21 +16,23 @@ impl MetadataAdapter for ContentsTutorial { } #[derive(Debug)] pub struct ContentsTutorial { - pub r#name: SeString, - pub r#description: SeString, pub r#page: Vec, + pub r#name: u32, + pub r#description: SeString, + pub r#unknown10: SeString, } impl ContentsTutorial { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { - r#name: row.field(0usize + offset)?.into_string()?, - r#description: row.field(1usize + offset)?.into_string()?, r#page: read_array( offset, 8usize, 1usize, - |offset| { Result::Ok(row.field(2usize + offset)?.into_i32()?) }, + |offset| { Result::Ok(row.field(0usize + offset)?.into_i32()?) }, )?, + r#name: row.field(8usize + offset)?.into_u32()?, + r#description: row.field(9usize + offset)?.into_string()?, + r#unknown10: row.field(10usize + offset)?.into_string()?, }) } } diff --git a/src/sheet/contents_tutorial_page.rs b/src/sheet/contents_tutorial_page.rs index 2eafa296..3b7e6f72 100644 --- a/src/sheet/contents_tutorial_page.rs +++ b/src/sheet/contents_tutorial_page.rs @@ -1,7 +1,7 @@ -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; -use ironworks::sestring::SeString; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use ironworks::sestring::SeString; use std::result::Result; impl MetadataAdapter for ContentsTutorialPage { fn name() -> String { diff --git a/src/sheet/craft_action.rs b/src/sheet/craft_action.rs index e946283d..e5475249 100644 --- a/src/sheet/craft_action.rs +++ b/src/sheet/craft_action.rs @@ -1,8 +1,8 @@ use crate::error::PopulateError; -use ironworks::excel::Row; -use std::result::Result; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for CraftAction { fn name() -> String { "CraftAction".to_string() diff --git a/src/sheet/craft_leve.rs b/src/sheet/craft_leve.rs index 4f56c4bb..b8934c85 100644 --- a/src/sheet/craft_leve.rs +++ b/src/sheet/craft_leve.rs @@ -1,9 +1,9 @@ -use ironworks::excel::Row; -use std::vec::Vec; -use crate::utility::read_array; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use crate::utility::read_array; +use ironworks::excel::Row; use std::result::Result; -use crate::error::PopulateError; +use std::vec::Vec; impl MetadataAdapter for CraftLeve { fn name() -> String { "CraftLeve".to_string() diff --git a/src/sheet/craft_leve_talk.rs b/src/sheet/craft_leve_talk.rs index 9e664070..cb7d027c 100644 --- a/src/sheet/craft_leve_talk.rs +++ b/src/sheet/craft_leve_talk.rs @@ -1,10 +1,10 @@ -use std::result::Result; -use ironworks::excel::Row; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use crate::utility::read_array; -use crate::error::PopulateError; -use std::vec::Vec; +use ironworks::excel::Row; use ironworks::sestring::SeString; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for CraftLeveTalk { fn name() -> String { "CraftLeveTalk".to_string() diff --git a/src/sheet/craft_level_difference.rs b/src/sheet/craft_level_difference.rs deleted file mode 100644 index d352c554..00000000 --- a/src/sheet/craft_level_difference.rs +++ /dev/null @@ -1,29 +0,0 @@ -use std::convert::Infallible; -use ironworks::excel::Row; -use crate::metadata::MetadataAdapter; -use std::result::Result; -use crate::error::PopulateError; -impl MetadataAdapter for CraftLevelDifference { - fn name() -> String { - "CraftLevelDifference".to_string() - } - fn populate(row: &Row) -> Result { - let offset = 0; - Result::Ok(CraftLevelDifference::populate(row, offset)?) - } -} -#[derive(Debug)] -pub struct CraftLevelDifference { - pub r#difference: i16, - pub r#progress_factor: Option, - pub r#quality_factor: Option, -} -impl CraftLevelDifference { - pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self { - r#difference: row.field(0usize + offset)?.into_i16()?, - r#progress_factor: None, - r#quality_factor: None, - }) - } -} diff --git a/src/sheet/craft_type.rs b/src/sheet/craft_type.rs index e27924fa..8cdd4d43 100644 --- a/src/sheet/craft_type.rs +++ b/src/sheet/craft_type.rs @@ -1,8 +1,8 @@ -use std::result::Result; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; -use crate::error::PopulateError; use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for CraftType { fn name() -> String { "CraftType".to_string() diff --git a/src/sheet/credit.rs b/src/sheet/credit.rs index f2749148..3365d352 100644 --- a/src/sheet/credit.rs +++ b/src/sheet/credit.rs @@ -1,7 +1,7 @@ use crate::error::PopulateError; -use std::result::Result; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for Credit { fn name() -> String { "Credit".to_string() diff --git a/src/sheet/credit_back_image.rs b/src/sheet/credit_back_image.rs index 137cf4a3..86db2744 100644 --- a/src/sheet/credit_back_image.rs +++ b/src/sheet/credit_back_image.rs @@ -1,7 +1,7 @@ -use std::result::Result; -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for CreditBackImage { fn name() -> String { "CreditBackImage".to_string() @@ -19,6 +19,7 @@ pub struct CreditBackImage { pub r#unknown3: bool, pub r#unknown4: bool, pub r#back_image: u32, + pub r#unknown6: u8, } impl CreditBackImage { pub fn populate(row: &Row, offset: usize) -> Result { @@ -29,6 +30,7 @@ impl CreditBackImage { r#unknown3: row.field(3usize + offset)?.into_bool()?, r#unknown4: row.field(4usize + offset)?.into_bool()?, r#back_image: row.field(5usize + offset)?.into_u32()?, + r#unknown6: row.field(6usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/credit_cast.rs b/src/sheet/credit_cast.rs index 10b2324d..0c9fb1d4 100644 --- a/src/sheet/credit_cast.rs +++ b/src/sheet/credit_cast.rs @@ -1,6 +1,6 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; -use crate::error::PopulateError; use ironworks::sestring::SeString; use std::result::Result; impl MetadataAdapter for CreditCast { diff --git a/src/sheet/credit_list.rs b/src/sheet/credit_list.rs index 9cca2008..c5e7a0ba 100644 --- a/src/sheet/credit_list.rs +++ b/src/sheet/credit_list.rs @@ -1,6 +1,6 @@ -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use std::result::Result; impl MetadataAdapter for CreditList { fn name() -> String { diff --git a/src/sheet/credit_list_text.rs b/src/sheet/credit_list_text.rs index ba25d89c..b51186b4 100644 --- a/src/sheet/credit_list_text.rs +++ b/src/sheet/credit_list_text.rs @@ -1,8 +1,8 @@ -use ironworks::excel::Row; -use std::result::Result; -use ironworks::sestring::SeString; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for CreditListText { fn name() -> String { "CreditListText".to_string() diff --git a/src/sheet/cs_bonus_content.rs b/src/sheet/cs_bonus_content.rs new file mode 100644 index 00000000..ef3fbc6f --- /dev/null +++ b/src/sheet/cs_bonus_content.rs @@ -0,0 +1,47 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use crate::utility::read_array; +use ironworks::excel::Row; +use std::result::Result; +use std::vec::Vec; +impl MetadataAdapter for CSBonusContent { + fn name() -> String { + "CSBonusContent".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(CSBonusContent::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct CSBonusContent { + pub r#content_type: u8, + pub r#content: Vec, + pub r#score: Vec, + pub r#reward_count: Vec, +} +impl CSBonusContent { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#content_type: row.field(0usize + offset)?.into_u8()?, + r#content: read_array( + offset, + 2usize, + 1usize, + |offset| { Result::Ok(row.field(1usize + offset)?.into_u16()?) }, + )?, + r#score: read_array( + offset, + 6usize, + 1usize, + |offset| { Result::Ok(row.field(3usize + offset)?.into_u16()?) }, + )?, + r#reward_count: read_array( + offset, + 5usize, + 1usize, + |offset| { Result::Ok(row.field(9usize + offset)?.into_u8()?) }, + )?, + }) + } +} diff --git a/src/sheet/cs_bonus_content_identifier.rs b/src/sheet/cs_bonus_content_identifier.rs new file mode 100644 index 00000000..c78b56d6 --- /dev/null +++ b/src/sheet/cs_bonus_content_identifier.rs @@ -0,0 +1,41 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use crate::utility::read_array; +use ironworks::excel::Row; +use std::result::Result; +use std::vec::Vec; +impl MetadataAdapter for CSBonusContentIdentifier { + fn name() -> String { + "CSBonusContentIdentifier".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(CSBonusContentIdentifier::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct CSBonusContentIdentifier { + pub r#content_link_type: u8, + pub r#content: u32, + pub r#unknown2: bool, + pub r#unlock_quest: Vec, + pub r#unknown6: u32, + pub r#map: u32, +} +impl CSBonusContentIdentifier { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#content_link_type: row.field(0usize + offset)?.into_u8()?, + r#content: row.field(1usize + offset)?.into_u32()?, + r#unknown2: row.field(2usize + offset)?.into_bool()?, + r#unlock_quest: read_array( + offset, + 3usize, + 1usize, + |offset| { Result::Ok(row.field(3usize + offset)?.into_u32()?) }, + )?, + r#unknown6: row.field(6usize + offset)?.into_u32()?, + r#map: row.field(7usize + offset)?.into_u32()?, + }) + } +} diff --git a/src/sheet/cs_bonus_content_type.rs b/src/sheet/cs_bonus_content_type.rs new file mode 100644 index 00000000..23ba964a --- /dev/null +++ b/src/sheet/cs_bonus_content_type.rs @@ -0,0 +1,45 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use crate::utility::read_array; +use ironworks::excel::Row; +use std::result::Result; +use std::vec::Vec; +impl MetadataAdapter for CSBonusContentType { + fn name() -> String { + "CSBonusContentType".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(CSBonusContentType::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct CSBonusContentType { + pub r#content_type: u8, + pub r#text: Vec, + pub r#image: u32, + pub r#unknown6: u32, + pub r#unlock_quest: bool, + pub r#unknown8: u32, + pub r#unknown9: u32, + pub r#unknown10: u32, +} +impl CSBonusContentType { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#content_type: row.field(0usize + offset)?.into_u8()?, + r#text: read_array( + offset, + 4usize, + 1usize, + |offset| { Result::Ok(row.field(1usize + offset)?.into_u32()?) }, + )?, + r#image: row.field(5usize + offset)?.into_u32()?, + r#unknown6: row.field(6usize + offset)?.into_u32()?, + r#unlock_quest: row.field(7usize + offset)?.into_bool()?, + r#unknown8: row.field(8usize + offset)?.into_u32()?, + r#unknown9: row.field(9usize + offset)?.into_u32()?, + r#unknown10: row.field(10usize + offset)?.into_u32()?, + }) + } +} diff --git a/src/sheet/cs_bonus_mission.rs b/src/sheet/cs_bonus_mission.rs new file mode 100644 index 00000000..171b9f3d --- /dev/null +++ b/src/sheet/cs_bonus_mission.rs @@ -0,0 +1,31 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use crate::utility::read_array; +use ironworks::excel::Row; +use std::result::Result; +use std::vec::Vec; +impl MetadataAdapter for CSBonusMission { + fn name() -> String { + "CSBonusMission".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(CSBonusMission::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct CSBonusMission { + pub r#content: Vec, +} +impl CSBonusMission { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#content: read_array( + offset, + 2usize, + 1usize, + |offset| { Result::Ok(row.field(0usize + offset)?.into_u16()?) }, + )?, + }) + } +} diff --git a/src/sheet/cs_bonus_mission_type.rs b/src/sheet/cs_bonus_mission_type.rs new file mode 100644 index 00000000..a164428c --- /dev/null +++ b/src/sheet/cs_bonus_mission_type.rs @@ -0,0 +1,24 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; +impl MetadataAdapter for CSBonusMissionType { + fn name() -> String { + "CSBonusMissionType".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(CSBonusMissionType::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct CSBonusMissionType { + pub r#unknown0: u8, +} +impl CSBonusMissionType { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u8()?, + }) + } +} diff --git a/src/sheet/cs_bonus_season.rs b/src/sheet/cs_bonus_season.rs new file mode 100644 index 00000000..d3cd260b --- /dev/null +++ b/src/sheet/cs_bonus_season.rs @@ -0,0 +1,52 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use crate::utility::read_array; +use ironworks::excel::Row; +use std::result::Result; +use std::vec::Vec; +impl MetadataAdapter for CSBonusSeason { + fn name() -> String { + "CSBonusSeason".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(CSBonusSeason::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct CSBonusSeason { + pub r#unknown0: bool, + pub r#unknown1: u16, + pub r#unknown2: u16, + pub r#unknown3: bool, + pub r#unknown4: bool, + pub r#item: u32, + pub r#category: Vec, + pub r#text: Vec, + pub r#unknown12: u8, +} +impl CSBonusSeason { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_bool()?, + r#unknown1: row.field(1usize + offset)?.into_u16()?, + r#unknown2: row.field(2usize + offset)?.into_u16()?, + r#unknown3: row.field(3usize + offset)?.into_bool()?, + r#unknown4: row.field(4usize + offset)?.into_bool()?, + r#item: row.field(5usize + offset)?.into_u32()?, + r#category: read_array( + offset, + 4usize, + 1usize, + |offset| { Result::Ok(row.field(6usize + offset)?.into_u16()?) }, + )?, + r#text: read_array( + offset, + 2usize, + 1usize, + |offset| { Result::Ok(row.field(10usize + offset)?.into_u8()?) }, + )?, + r#unknown12: row.field(12usize + offset)?.into_u8()?, + }) + } +} diff --git a/src/sheet/cs_bonus_text_data.rs b/src/sheet/cs_bonus_text_data.rs new file mode 100644 index 00000000..919e81d8 --- /dev/null +++ b/src/sheet/cs_bonus_text_data.rs @@ -0,0 +1,25 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; +impl MetadataAdapter for CSBonusTextData { + fn name() -> String { + "CSBonusTextData".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(CSBonusTextData::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct CSBonusTextData { + pub r#text: SeString, +} +impl CSBonusTextData { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#text: row.field(0usize + offset)?.into_string()?, + }) + } +} diff --git a/src/sheet/custom_talk.rs b/src/sheet/custom_talk.rs index 5fe22cc5..706203c7 100644 --- a/src/sheet/custom_talk.rs +++ b/src/sheet/custom_talk.rs @@ -1,10 +1,10 @@ -use crate::utility::read_array; -use std::vec::Vec; use crate::error::PopulateError; -use ironworks::sestring::SeString; +use crate::metadata::MetadataAdapter; +use crate::utility::read_array; use ironworks::excel::Row; +use ironworks::sestring::SeString; use std::result::Result; -use crate::metadata::MetadataAdapter; +use std::vec::Vec; impl MetadataAdapter for CustomTalk { fn name() -> String { "CustomTalk".to_string() @@ -34,6 +34,9 @@ pub struct CustomTalk { pub r#unknown73: bool, pub r#unknown74: bool, pub r#special_links: u32, + pub r#unknown76: u8, + pub r#unknown77: u8, + pub r#unknown78: bool, } impl CustomTalk { pub fn populate(row: &Row, offset: usize) -> Result { @@ -66,6 +69,9 @@ impl CustomTalk { r#unknown73: row.field(73usize + offset)?.into_bool()?, r#unknown74: row.field(74usize + offset)?.into_bool()?, r#special_links: row.field(75usize + offset)?.into_u32()?, + r#unknown76: row.field(76usize + offset)?.into_u8()?, + r#unknown77: row.field(77usize + offset)?.into_u8()?, + r#unknown78: row.field(78usize + offset)?.into_bool()?, }) } } diff --git a/src/sheet/custom_talk_define_client.rs b/src/sheet/custom_talk_define_client.rs new file mode 100644 index 00000000..8246bf19 --- /dev/null +++ b/src/sheet/custom_talk_define_client.rs @@ -0,0 +1,27 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; +impl MetadataAdapter for CustomTalkDefineClient { + fn name() -> String { + "CustomTalkDefineClient".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(CustomTalkDefineClient::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct CustomTalkDefineClient { + pub r#unknown0: SeString, + pub r#unknown1: u32, +} +impl CustomTalkDefineClient { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_string()?, + r#unknown1: row.field(1usize + offset)?.into_u32()?, + }) + } +} diff --git a/src/sheet/custom_talk_nest_handlers.rs b/src/sheet/custom_talk_nest_handlers.rs index f76df396..e3c68eff 100644 --- a/src/sheet/custom_talk_nest_handlers.rs +++ b/src/sheet/custom_talk_nest_handlers.rs @@ -1,5 +1,5 @@ -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; use std::result::Result; impl MetadataAdapter for CustomTalkNestHandlers { diff --git a/src/sheet/cut_scene_incomp_quest.rs b/src/sheet/cut_scene_incomp_quest.rs index 117bdd28..3ff1bfab 100644 --- a/src/sheet/cut_scene_incomp_quest.rs +++ b/src/sheet/cut_scene_incomp_quest.rs @@ -1,7 +1,7 @@ -use std::result::Result; -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 CutSceneIncompQuest { fn name() -> String { "CutSceneIncompQuest".to_string() diff --git a/src/sheet/cut_screen_image.rs b/src/sheet/cut_screen_image.rs index f93997b6..264ad989 100644 --- a/src/sheet/cut_screen_image.rs +++ b/src/sheet/cut_screen_image.rs @@ -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 CutScreenImage { fn name() -> String { @@ -15,12 +15,14 @@ impl MetadataAdapter for CutScreenImage { pub struct CutScreenImage { pub r#type: i16, pub r#image: i32, + pub r#unknown2: i16, } impl CutScreenImage { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#type: row.field(0usize + offset)?.into_i16()?, r#image: row.field(1usize + offset)?.into_i32()?, + r#unknown2: row.field(2usize + offset)?.into_i16()?, }) } } diff --git a/src/sheet/cutscene.rs b/src/sheet/cutscene.rs index 8662e3af..b9e7ba2d 100644 --- a/src/sheet/cutscene.rs +++ b/src/sheet/cutscene.rs @@ -1,8 +1,8 @@ -use std::result::Result; -use ironworks::sestring::SeString; -use ironworks::excel::Row; -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for Cutscene { fn name() -> String { "Cutscene".to_string() @@ -15,11 +15,29 @@ impl MetadataAdapter for Cutscene { #[derive(Debug)] pub struct Cutscene { pub r#path: SeString, + pub r#unknown1: u8, + pub r#unknown2: u8, + pub r#unknown3: bool, + pub r#unknown4: i32, + pub r#unknown5: i32, + pub r#unknown6: i32, + pub r#unknown7: i32, + pub r#unknown8: u16, + pub r#unknown9: bool, } impl Cutscene { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#path: row.field(0usize + offset)?.into_string()?, + r#unknown1: row.field(1usize + offset)?.into_u8()?, + r#unknown2: row.field(2usize + offset)?.into_u8()?, + r#unknown3: row.field(3usize + offset)?.into_bool()?, + r#unknown4: row.field(4usize + offset)?.into_i32()?, + r#unknown5: row.field(5usize + offset)?.into_i32()?, + r#unknown6: row.field(6usize + offset)?.into_i32()?, + r#unknown7: row.field(7usize + offset)?.into_i32()?, + r#unknown8: row.field(8usize + offset)?.into_u16()?, + r#unknown9: row.field(9usize + offset)?.into_bool()?, }) } } diff --git a/src/sheet/cutscene_motion.rs b/src/sheet/cutscene_motion.rs index eaf0df44..cdc2df2a 100644 --- a/src/sheet/cutscene_motion.rs +++ b/src/sheet/cutscene_motion.rs @@ -1,7 +1,7 @@ use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for CutsceneMotion { fn name() -> String { "CutsceneMotion".to_string() diff --git a/src/sheet/cutscene_work_index.rs b/src/sheet/cutscene_work_index.rs index 23ca4c55..e6e9517d 100644 --- a/src/sheet/cutscene_work_index.rs +++ b/src/sheet/cutscene_work_index.rs @@ -1,7 +1,7 @@ -use std::result::Result; -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for CutsceneWorkIndex { fn name() -> String { "CutsceneWorkIndex".to_string() diff --git a/src/sheet/cycle_time.rs b/src/sheet/cycle_time.rs index 7f8f88a0..e0cf792d 100644 --- a/src/sheet/cycle_time.rs +++ b/src/sheet/cycle_time.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; use crate::error::PopulateError; -use std::result::Result; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for CycleTime { fn name() -> String { "CycleTime".to_string() diff --git a/src/sheet/daily_supply_item.rs b/src/sheet/daily_supply_item.rs index 0f586b68..ea54d8ab 100644 --- a/src/sheet/daily_supply_item.rs +++ b/src/sheet/daily_supply_item.rs @@ -1,9 +1,9 @@ -use std::vec::Vec; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use crate::utility::read_array; use ironworks::excel::Row; use std::result::Result; -use crate::utility::read_array; -use crate::metadata::MetadataAdapter; +use std::vec::Vec; impl MetadataAdapter for DailySupplyItem { fn name() -> String { "DailySupplyItem".to_string() diff --git a/src/sheet/dawn_content.rs b/src/sheet/dawn_content.rs index f8477bbf..874c81aa 100644 --- a/src/sheet/dawn_content.rs +++ b/src/sheet/dawn_content.rs @@ -1,5 +1,5 @@ -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; use std::result::Result; impl MetadataAdapter for DawnContent { @@ -15,20 +15,48 @@ impl MetadataAdapter for DawnContent { pub struct DawnContent { pub r#content: u32, pub r#unknown1: bool, - pub r#unknown2: bool, + pub r#unknown2: u16, pub r#unknown3: bool, - pub r#exp_below_ex_max_lvl: u32, - pub r#exp_above_ex_max_lvl: u32, + pub r#exp_below_ex_max_lvl: bool, + pub r#exp_above_ex_max_lvl: bool, + pub r#unknown6: u32, + pub r#unknown7: u32, + pub r#unknown8: u32, + pub r#unknown9: u8, + pub r#unknown10: u32, + pub r#unknown11: u32, + pub r#unknown12: u32, + pub r#unknown13: u32, + pub r#unknown14: u32, + pub r#unknown15: u32, + pub r#unknown16: u32, + pub r#unknown17: u32, + pub r#unknown18: u32, + pub r#unknown19: u32, } impl DawnContent { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#content: row.field(0usize + offset)?.into_u32()?, r#unknown1: row.field(1usize + offset)?.into_bool()?, - r#unknown2: row.field(2usize + offset)?.into_bool()?, + r#unknown2: row.field(2usize + offset)?.into_u16()?, r#unknown3: row.field(3usize + offset)?.into_bool()?, - r#exp_below_ex_max_lvl: row.field(4usize + offset)?.into_u32()?, - r#exp_above_ex_max_lvl: row.field(5usize + offset)?.into_u32()?, + r#exp_below_ex_max_lvl: row.field(4usize + offset)?.into_bool()?, + r#exp_above_ex_max_lvl: row.field(5usize + offset)?.into_bool()?, + r#unknown6: row.field(6usize + offset)?.into_u32()?, + r#unknown7: row.field(7usize + offset)?.into_u32()?, + r#unknown8: row.field(8usize + offset)?.into_u32()?, + r#unknown9: row.field(9usize + offset)?.into_u8()?, + r#unknown10: row.field(10usize + offset)?.into_u32()?, + r#unknown11: row.field(11usize + offset)?.into_u32()?, + r#unknown12: row.field(12usize + offset)?.into_u32()?, + r#unknown13: row.field(13usize + offset)?.into_u32()?, + r#unknown14: row.field(14usize + offset)?.into_u32()?, + r#unknown15: row.field(15usize + offset)?.into_u32()?, + r#unknown16: row.field(16usize + offset)?.into_u32()?, + r#unknown17: row.field(17usize + offset)?.into_u32()?, + r#unknown18: row.field(18usize + offset)?.into_u32()?, + r#unknown19: row.field(19usize + offset)?.into_u32()?, }) } } diff --git a/src/sheet/dawn_content_participable.rs b/src/sheet/dawn_content_participable.rs index b1d8f269..d512d19a 100644 --- a/src/sheet/dawn_content_participable.rs +++ b/src/sheet/dawn_content_participable.rs @@ -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 DawnContentParticipable { fn name() -> String { "DawnContentParticipable".to_string() @@ -12,9 +12,13 @@ impl MetadataAdapter for DawnContentParticipable { } } #[derive(Debug)] -pub struct DawnContentParticipable {} +pub struct DawnContentParticipable { + pub r#unknown0: u8, +} impl DawnContentParticipable { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u8()?, + }) } } diff --git a/src/sheet/dawn_grow_member.rs b/src/sheet/dawn_grow_member.rs index deabdf6b..b0a5c1d5 100644 --- a/src/sheet/dawn_grow_member.rs +++ b/src/sheet/dawn_grow_member.rs @@ -1,9 +1,9 @@ use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use crate::utility::read_array; use ironworks::excel::Row; use std::result::Result; -use crate::metadata::MetadataAdapter; use std::vec::Vec; -use crate::utility::read_array; impl MetadataAdapter for DawnGrowMember { fn name() -> String { "DawnGrowMember".to_string() @@ -24,17 +24,17 @@ impl DawnGrowMember { Result::Ok(Self { r#select_image: read_array( offset, - 3usize, + 4usize, 1usize, |offset| { Result::Ok(row.field(0usize + offset)?.into_u32()?) }, )?, r#portrait_image: read_array( offset, - 3usize, + 4usize, 1usize, - |offset| { Result::Ok(row.field(3usize + offset)?.into_u32()?) }, + |offset| { Result::Ok(row.field(4usize + offset)?.into_u32()?) }, )?, - r#class: row.field(6usize + offset)?.into_u8()?, + r#class: row.field(8usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/dawn_member.rs b/src/sheet/dawn_member.rs index edfed9d8..b88d7cff 100644 --- a/src/sheet/dawn_member.rs +++ b/src/sheet/dawn_member.rs @@ -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 DawnMember { fn name() -> String { "DawnMember".to_string() @@ -12,9 +12,15 @@ impl MetadataAdapter for DawnMember { } } #[derive(Debug)] -pub struct DawnMember {} +pub struct DawnMember { + pub r#unknown0: u8, + pub r#unknown1: u8, +} impl DawnMember { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u8()?, + r#unknown1: row.field(1usize + offset)?.into_u8()?, + }) } } diff --git a/src/sheet/dawn_member_ui_param.rs b/src/sheet/dawn_member_ui_param.rs index 336042d9..42a15be7 100644 --- a/src/sheet/dawn_member_ui_param.rs +++ b/src/sheet/dawn_member_ui_param.rs @@ -1,8 +1,8 @@ -use crate::metadata::MetadataAdapter; 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 DawnMemberUIParam { fn name() -> String { "DawnMemberUIParam".to_string() diff --git a/src/sheet/dawn_quest_member.rs b/src/sheet/dawn_quest_member.rs index 30d8762b..f9d69a44 100644 --- a/src/sheet/dawn_quest_member.rs +++ b/src/sheet/dawn_quest_member.rs @@ -1,7 +1,7 @@ -use std::result::Result; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for DawnQuestMember { fn name() -> String { "DawnQuestMember".to_string() diff --git a/src/sheet/deep_dungeon.rs b/src/sheet/deep_dungeon.rs index 16f5f659..e3127158 100644 --- a/src/sheet/deep_dungeon.rs +++ b/src/sheet/deep_dungeon.rs @@ -1,10 +1,10 @@ -use std::vec::Vec; -use crate::utility::read_array; use crate::error::PopulateError; -use std::result::Result; -use ironworks::sestring::SeString; use crate::metadata::MetadataAdapter; +use crate::utility::read_array; use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for DeepDungeon { fn name() -> String { "DeepDungeon".to_string() @@ -19,9 +19,22 @@ pub struct DeepDungeon { pub r#aetherpool_arm: u8, pub r#aetherpool_armor: u8, pub r#pomander_slot: Vec, - pub r#magicite_slot: Vec, - pub r#name: SeString, - pub r#content_finder_condition_start: u16, + pub r#deep_dungeon_type: u8, + pub r#stone_slot: Vec, + pub r#name: u8, + pub r#content_finder_condition_start: u8, + pub r#unknown25: u32, + pub r#unknown26: u32, + pub r#unknown27: u8, + pub r#unknown28: u8, + pub r#unknown29: u32, + pub r#unknown30: u32, + pub r#unknown31: u8, + pub r#unknown32: u8, + pub r#unknown33: u32, + pub r#unknown34: u32, + pub r#unknown35: SeString, + pub r#unknown36: u32, } impl DeepDungeon { pub fn populate(row: &Row, offset: usize) -> Result { @@ -34,14 +47,27 @@ impl DeepDungeon { 1usize, |offset| { Result::Ok(row.field(2usize + offset)?.into_u8()?) }, )?, - r#magicite_slot: read_array( + r#deep_dungeon_type: row.field(18usize + offset)?.into_u8()?, + r#stone_slot: read_array( offset, 4usize, 1usize, - |offset| { Result::Ok(row.field(18usize + offset)?.into_u8()?) }, + |offset| { Result::Ok(row.field(19usize + offset)?.into_u8()?) }, )?, - r#name: row.field(22usize + offset)?.into_string()?, - r#content_finder_condition_start: row.field(23usize + offset)?.into_u16()?, + r#name: row.field(23usize + offset)?.into_u8()?, + r#content_finder_condition_start: row.field(24usize + offset)?.into_u8()?, + r#unknown25: row.field(25usize + offset)?.into_u32()?, + r#unknown26: row.field(26usize + offset)?.into_u32()?, + r#unknown27: row.field(27usize + offset)?.into_u8()?, + r#unknown28: row.field(28usize + offset)?.into_u8()?, + r#unknown29: row.field(29usize + offset)?.into_u32()?, + r#unknown30: row.field(30usize + offset)?.into_u32()?, + r#unknown31: row.field(31usize + offset)?.into_u8()?, + r#unknown32: row.field(32usize + offset)?.into_u8()?, + r#unknown33: row.field(33usize + offset)?.into_u32()?, + r#unknown34: row.field(34usize + offset)?.into_u32()?, + r#unknown35: row.field(35usize + offset)?.into_string()?, + r#unknown36: row.field(36usize + offset)?.into_u32()?, }) } } diff --git a/src/sheet/deep_dungeon_danger.rs b/src/sheet/deep_dungeon_danger.rs index 111e5dcd..7f67dde6 100644 --- a/src/sheet/deep_dungeon_danger.rs +++ b/src/sheet/deep_dungeon_danger.rs @@ -1,7 +1,7 @@ -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; -use std::result::Result; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for DeepDungeonDanger { fn name() -> String { "DeepDungeonDanger".to_string() diff --git a/src/sheet/deep_dungeon_demiclone.rs b/src/sheet/deep_dungeon_demiclone.rs new file mode 100644 index 00000000..4c6a7ad3 --- /dev/null +++ b/src/sheet/deep_dungeon_demiclone.rs @@ -0,0 +1,45 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; +impl MetadataAdapter for DeepDungeonDemiclone { + fn name() -> String { + "DeepDungeonDemiclone".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(DeepDungeonDemiclone::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct DeepDungeonDemiclone { + pub r#icon: u32, + pub r#singular: SeString, + pub r#unknown2: i8, + pub r#plural: SeString, + pub r#unknown4: i8, + pub r#unknown5: i8, + pub r#unknown6: i8, + pub r#unknown7: i8, + pub r#unknown8: i8, + pub r#title_case: SeString, + pub r#description: SeString, +} +impl DeepDungeonDemiclone { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#icon: row.field(0usize + offset)?.into_u32()?, + r#singular: row.field(1usize + offset)?.into_string()?, + r#unknown2: row.field(2usize + offset)?.into_i8()?, + r#plural: row.field(3usize + offset)?.into_string()?, + r#unknown4: row.field(4usize + offset)?.into_i8()?, + r#unknown5: row.field(5usize + offset)?.into_i8()?, + r#unknown6: row.field(6usize + offset)?.into_i8()?, + r#unknown7: row.field(7usize + offset)?.into_i8()?, + r#unknown8: row.field(8usize + offset)?.into_i8()?, + r#title_case: row.field(9usize + offset)?.into_string()?, + r#description: row.field(10usize + offset)?.into_string()?, + }) + } +} diff --git a/src/sheet/deep_dungeon_equipment.rs b/src/sheet/deep_dungeon_equipment.rs index 9f5ca97e..0478ec62 100644 --- a/src/sheet/deep_dungeon_equipment.rs +++ b/src/sheet/deep_dungeon_equipment.rs @@ -1,8 +1,8 @@ -use ironworks::sestring::SeString; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; use ironworks::excel::Row; -use crate::error::PopulateError; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for DeepDungeonEquipment { fn name() -> String { "DeepDungeonEquipment".to_string() diff --git a/src/sheet/deep_dungeon_floor_effect_ui.rs b/src/sheet/deep_dungeon_floor_effect_ui.rs index 21b162fd..9dcac76d 100644 --- a/src/sheet/deep_dungeon_floor_effect_ui.rs +++ b/src/sheet/deep_dungeon_floor_effect_ui.rs @@ -1,8 +1,8 @@ -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; +use ironworks::excel::Row; use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for DeepDungeonFloorEffectUI { fn name() -> String { "DeepDungeonFloorEffectUI".to_string() diff --git a/src/sheet/deep_dungeon_item.rs b/src/sheet/deep_dungeon_item.rs index 6afd77a3..3eb0be33 100644 --- a/src/sheet/deep_dungeon_item.rs +++ b/src/sheet/deep_dungeon_item.rs @@ -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 std::result::Result; impl MetadataAdapter for DeepDungeonItem { fn name() -> String { "DeepDungeonItem".to_string() diff --git a/src/sheet/deep_dungeon_layer.rs b/src/sheet/deep_dungeon_layer.rs index 8cf28c90..ddc6e550 100644 --- a/src/sheet/deep_dungeon_layer.rs +++ b/src/sheet/deep_dungeon_layer.rs @@ -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 DeepDungeonLayer { fn name() -> String { "DeepDungeonLayer".to_string() @@ -20,6 +20,7 @@ pub struct DeepDungeonLayer { pub r#room_c: u16, pub r#wep_min_lv: u8, pub r#armour_min_lv: u8, + pub r#unknown7: bool, } impl DeepDungeonLayer { pub fn populate(row: &Row, offset: usize) -> Result { @@ -31,6 +32,7 @@ impl DeepDungeonLayer { r#room_c: row.field(4usize + offset)?.into_u16()?, r#wep_min_lv: row.field(5usize + offset)?.into_u8()?, r#armour_min_lv: row.field(6usize + offset)?.into_u8()?, + r#unknown7: row.field(7usize + offset)?.into_bool()?, }) } } diff --git a/src/sheet/deep_dungeon_magic_stone.rs b/src/sheet/deep_dungeon_magic_stone.rs index 5e164bcb..d0f3c3bd 100644 --- a/src/sheet/deep_dungeon_magic_stone.rs +++ b/src/sheet/deep_dungeon_magic_stone.rs @@ -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 crate::metadata::MetadataAdapter; +use std::result::Result; impl MetadataAdapter for DeepDungeonMagicStone { fn name() -> String { "DeepDungeonMagicStone".to_string() diff --git a/src/sheet/deep_dungeon_map5_x.rs b/src/sheet/deep_dungeon_map5_x.rs index 315dcd2b..c34b7f1d 100644 --- a/src/sheet/deep_dungeon_map5_x.rs +++ b/src/sheet/deep_dungeon_map5_x.rs @@ -1,9 +1,9 @@ -use ironworks::excel::Row; -use crate::metadata::MetadataAdapter; -use std::vec::Vec; -use std::result::Result; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use crate::utility::read_array; +use ironworks::excel::Row; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for DeepDungeonMap5X { fn name() -> String { "DeepDungeonMap5X".to_string() diff --git a/src/sheet/deep_dungeon_room.rs b/src/sheet/deep_dungeon_room.rs index f0cf9132..72daaffc 100644 --- a/src/sheet/deep_dungeon_room.rs +++ b/src/sheet/deep_dungeon_room.rs @@ -1,9 +1,9 @@ -use std::vec::Vec; -use crate::utility::read_array; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use crate::utility::read_array; use ironworks::excel::Row; use std::result::Result; -use crate::error::PopulateError; +use std::vec::Vec; impl MetadataAdapter for DeepDungeonRoom { fn name() -> String { "DeepDungeonRoom".to_string() diff --git a/src/sheet/deep_dungeon_status.rs b/src/sheet/deep_dungeon_status.rs index 0ad197fb..88edb138 100644 --- a/src/sheet/deep_dungeon_status.rs +++ b/src/sheet/deep_dungeon_status.rs @@ -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 DeepDungeonStatus { fn name() -> String { "DeepDungeonStatus".to_string() diff --git a/src/sheet/default_talk.rs b/src/sheet/default_talk.rs index a0398138..8427f19d 100644 --- a/src/sheet/default_talk.rs +++ b/src/sheet/default_talk.rs @@ -1,10 +1,10 @@ +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 std::vec::Vec; -use crate::error::PopulateError; -use crate::metadata::MetadataAdapter; -use ironworks::sestring::SeString; impl MetadataAdapter for DefaultTalk { fn name() -> String { "DefaultTalk".to_string() diff --git a/src/sheet/default_talk_lip_sync_type.rs b/src/sheet/default_talk_lip_sync_type.rs index aadc60c9..3ff05e4a 100644 --- a/src/sheet/default_talk_lip_sync_type.rs +++ b/src/sheet/default_talk_lip_sync_type.rs @@ -1,7 +1,7 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; use ironworks::excel::Row; -use crate::error::PopulateError; +use std::result::Result; impl MetadataAdapter for DefaultTalkLipSyncType { fn name() -> String { "DefaultTalkLipSyncType".to_string() diff --git a/src/sheet/delivery_quest.rs b/src/sheet/delivery_quest.rs index 3398618f..36d694d3 100644 --- a/src/sheet/delivery_quest.rs +++ b/src/sheet/delivery_quest.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use std::result::Result; -use crate::error::PopulateError; impl MetadataAdapter for DeliveryQuest { fn name() -> String { "DeliveryQuest".to_string() diff --git a/src/sheet/description.rs b/src/sheet/description.rs index 41219eb1..19af61f1 100644 --- a/src/sheet/description.rs +++ b/src/sheet/description.rs @@ -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 ironworks::sestring::SeString; use std::result::Result; impl MetadataAdapter for Description { @@ -14,22 +14,24 @@ impl MetadataAdapter for Description { } #[derive(Debug)] pub struct Description { + pub r#unknown0: u8, pub r#quest: u32, pub r#text_long: SeString, pub r#text_short: SeString, pub r#text_commentary: SeString, - pub r#unknown4: bool, + pub r#unknown5: bool, pub r#section: u32, } impl Description { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { - r#quest: row.field(0usize + offset)?.into_u32()?, - r#text_long: row.field(1usize + offset)?.into_string()?, - r#text_short: row.field(2usize + offset)?.into_string()?, - r#text_commentary: row.field(3usize + offset)?.into_string()?, - r#unknown4: row.field(4usize + offset)?.into_bool()?, - r#section: row.field(5usize + offset)?.into_u32()?, + r#unknown0: row.field(0usize + offset)?.into_u8()?, + r#quest: row.field(1usize + offset)?.into_u32()?, + r#text_long: row.field(2usize + offset)?.into_string()?, + r#text_short: row.field(3usize + offset)?.into_string()?, + r#text_commentary: row.field(4usize + offset)?.into_string()?, + r#unknown5: row.field(5usize + offset)?.into_bool()?, + r#section: row.field(6usize + offset)?.into_u32()?, }) } } diff --git a/src/sheet/description_page.rs b/src/sheet/description_page.rs index 6a9b7194..7d417e6a 100644 --- a/src/sheet/description_page.rs +++ b/src/sheet/description_page.rs @@ -1,9 +1,9 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; +use crate::utility::read_array; use ironworks::excel::Row; -use crate::error::PopulateError; +use std::result::Result; use std::vec::Vec; -use crate::utility::read_array; impl MetadataAdapter for DescriptionPage { fn name() -> String { "DescriptionPage".to_string() @@ -30,21 +30,23 @@ impl DescriptionPage_e { pub struct DescriptionPage { pub r#unknown0: u8, pub r#quest: u32, - pub r#unknown2: u8, + pub r#unknown2: u32, pub r#e: Vec, + pub r#unknown25: u16, } impl DescriptionPage { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#unknown0: row.field(0usize + offset)?.into_u8()?, r#quest: row.field(1usize + offset)?.into_u32()?, - r#unknown2: row.field(2usize + offset)?.into_u8()?, + r#unknown2: row.field(2usize + offset)?.into_u32()?, r#e: read_array( offset, 11usize, 2usize, |offset| { Result::Ok(DescriptionPage_e::populate(row, offset)?) }, )?, + r#unknown25: row.field(25usize + offset)?.into_u16()?, }) } } diff --git a/src/sheet/description_section.rs b/src/sheet/description_section.rs index d8c3675e..92045066 100644 --- a/src/sheet/description_section.rs +++ b/src/sheet/description_section.rs @@ -1,7 +1,7 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; use ironworks::excel::Row; -use crate::error::PopulateError; +use std::result::Result; impl MetadataAdapter for DescriptionSection { fn name() -> String { "DescriptionSection".to_string() diff --git a/src/sheet/description_string.rs b/src/sheet/description_string.rs index ef9e2714..aaca1eae 100644 --- a/src/sheet/description_string.rs +++ b/src/sheet/description_string.rs @@ -1,8 +1,8 @@ use crate::error::PopulateError; -use std::result::Result; use crate::metadata::MetadataAdapter; -use ironworks::sestring::SeString; use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for DescriptionString { fn name() -> String { "DescriptionString".to_string() diff --git a/src/sheet/disposal_shop.rs b/src/sheet/disposal_shop.rs index 7df94956..dc25b6f7 100644 --- a/src/sheet/disposal_shop.rs +++ b/src/sheet/disposal_shop.rs @@ -1,8 +1,8 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use ironworks::sestring::SeString; use ironworks::excel::Row; +use ironworks::sestring::SeString; use std::result::Result; -use crate::error::PopulateError; impl MetadataAdapter for DisposalShop { fn name() -> String { "DisposalShop".to_string() @@ -15,11 +15,45 @@ impl MetadataAdapter for DisposalShop { #[derive(Debug)] pub struct DisposalShop { pub r#shop_name: SeString, + pub r#unknown1: i32, + pub r#unknown2: i32, + pub r#unknown3: i32, + pub r#unknown4: i32, + pub r#unknown5: i32, + pub r#unknown6: i32, + pub r#unknown7: i32, + pub r#unknown8: i32, + pub r#unknown9: u16, + pub r#unknown10: u16, + pub r#unknown11: u16, + pub r#unknown12: u16, + pub r#unknown13: u16, + pub r#unknown14: u16, + pub r#unknown15: u16, + pub r#unknown16: u16, + pub r#unknown17: bool, } impl DisposalShop { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#shop_name: row.field(0usize + offset)?.into_string()?, + r#unknown1: row.field(1usize + offset)?.into_i32()?, + r#unknown2: row.field(2usize + offset)?.into_i32()?, + r#unknown3: row.field(3usize + offset)?.into_i32()?, + r#unknown4: row.field(4usize + offset)?.into_i32()?, + r#unknown5: row.field(5usize + offset)?.into_i32()?, + r#unknown6: row.field(6usize + offset)?.into_i32()?, + r#unknown7: row.field(7usize + offset)?.into_i32()?, + r#unknown8: row.field(8usize + offset)?.into_i32()?, + r#unknown9: row.field(9usize + offset)?.into_u16()?, + r#unknown10: row.field(10usize + offset)?.into_u16()?, + r#unknown11: row.field(11usize + offset)?.into_u16()?, + r#unknown12: row.field(12usize + offset)?.into_u16()?, + r#unknown13: row.field(13usize + offset)?.into_u16()?, + r#unknown14: row.field(14usize + offset)?.into_u16()?, + r#unknown15: row.field(15usize + offset)?.into_u16()?, + r#unknown16: row.field(16usize + offset)?.into_u16()?, + r#unknown17: row.field(17usize + offset)?.into_bool()?, }) } } diff --git a/src/sheet/disposal_shop_filter_type.rs b/src/sheet/disposal_shop_filter_type.rs index 8be8ceb9..c0953cd1 100644 --- a/src/sheet/disposal_shop_filter_type.rs +++ b/src/sheet/disposal_shop_filter_type.rs @@ -1,7 +1,7 @@ -use ironworks::sestring::SeString; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; -use crate::error::PopulateError; +use ironworks::sestring::SeString; use std::result::Result; impl MetadataAdapter for DisposalShopFilterType { fn name() -> String { diff --git a/src/sheet/disposal_shop_item.rs b/src/sheet/disposal_shop_item.rs index 2fc17a1a..ec5d60a5 100644 --- a/src/sheet/disposal_shop_item.rs +++ b/src/sheet/disposal_shop_item.rs @@ -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 DisposalShopItem { fn name() -> String { "DisposalShopItem".to_string() @@ -18,6 +18,7 @@ pub struct DisposalShopItem { pub r#item_received: i32, pub r#unknown3: bool, pub r#quantity_received: u32, + pub r#unknown5: u16, } impl DisposalShopItem { pub fn populate(row: &Row, offset: usize) -> Result { @@ -27,6 +28,7 @@ impl DisposalShopItem { r#item_received: row.field(2usize + offset)?.into_i32()?, r#unknown3: row.field(3usize + offset)?.into_bool()?, r#quantity_received: row.field(4usize + offset)?.into_u32()?, + r#unknown5: row.field(5usize + offset)?.into_u16()?, }) } } diff --git a/src/sheet/dps_challenge.rs b/src/sheet/dps_challenge.rs index c81baece..9c1f9999 100644 --- a/src/sheet/dps_challenge.rs +++ b/src/sheet/dps_challenge.rs @@ -1,8 +1,8 @@ -use std::result::Result; -use ironworks::sestring::SeString; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for DpsChallenge { fn name() -> String { "DpsChallenge".to_string() diff --git a/src/sheet/dps_challenge_officer.rs b/src/sheet/dps_challenge_officer.rs index 95e618bc..18e3b2e4 100644 --- a/src/sheet/dps_challenge_officer.rs +++ b/src/sheet/dps_challenge_officer.rs @@ -1,9 +1,9 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use crate::utility::read_array; use ironworks::excel::Row; use std::result::Result; use std::vec::Vec; -use crate::error::PopulateError; -use crate::metadata::MetadataAdapter; impl MetadataAdapter for DpsChallengeOfficer { fn name() -> String { "DpsChallengeOfficer".to_string() diff --git a/src/sheet/dps_challenge_transient.rs b/src/sheet/dps_challenge_transient.rs index dde939db..5b7145cd 100644 --- a/src/sheet/dps_challenge_transient.rs +++ b/src/sheet/dps_challenge_transient.rs @@ -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 DpsChallengeTransient { fn name() -> String { "DpsChallengeTransient".to_string() diff --git a/src/sheet/dynamic_event.rs b/src/sheet/dynamic_event.rs index e8df2ae8..b923e125 100644 --- a/src/sheet/dynamic_event.rs +++ b/src/sheet/dynamic_event.rs @@ -1,8 +1,8 @@ -use std::result::Result; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; -use crate::error::PopulateError; use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for DynamicEvent { fn name() -> String { "DynamicEvent".to_string() @@ -18,14 +18,20 @@ pub struct DynamicEvent { pub r#enemy_type: u8, pub r#unknown2: u8, pub r#unknown3: u8, - pub r#lgb_event_object: u32, + pub r#lgb_event_object: bool, pub r#lgb_map_range: u32, pub r#quest: u32, - pub r#unknown7: u8, + pub r#unknown7: u32, pub r#single_battle: u8, - pub r#announce: u32, - pub r#name: SeString, + pub r#announce: u8, + pub r#name: u32, pub r#description: SeString, + pub r#unknown12: SeString, + pub r#unknown13: i16, + pub r#unknown14: i16, + pub r#unknown15: i16, + pub r#unknown16: u32, + pub r#unknown17: u32, } impl DynamicEvent { pub fn populate(row: &Row, offset: usize) -> Result { @@ -34,14 +40,20 @@ impl DynamicEvent { r#enemy_type: row.field(1usize + offset)?.into_u8()?, r#unknown2: row.field(2usize + offset)?.into_u8()?, r#unknown3: row.field(3usize + offset)?.into_u8()?, - r#lgb_event_object: row.field(4usize + offset)?.into_u32()?, + r#lgb_event_object: row.field(4usize + offset)?.into_bool()?, r#lgb_map_range: row.field(5usize + offset)?.into_u32()?, r#quest: row.field(6usize + offset)?.into_u32()?, - r#unknown7: row.field(7usize + offset)?.into_u8()?, + r#unknown7: row.field(7usize + offset)?.into_u32()?, r#single_battle: row.field(8usize + offset)?.into_u8()?, - r#announce: row.field(9usize + offset)?.into_u32()?, - r#name: row.field(10usize + offset)?.into_string()?, + r#announce: row.field(9usize + offset)?.into_u8()?, + r#name: row.field(10usize + offset)?.into_u32()?, r#description: row.field(11usize + offset)?.into_string()?, + r#unknown12: row.field(12usize + offset)?.into_string()?, + r#unknown13: row.field(13usize + offset)?.into_i16()?, + r#unknown14: row.field(14usize + offset)?.into_i16()?, + r#unknown15: row.field(15usize + offset)?.into_i16()?, + r#unknown16: row.field(16usize + offset)?.into_u32()?, + r#unknown17: row.field(17usize + offset)?.into_u32()?, }) } } diff --git a/src/sheet/dynamic_event_enemy_type.rs b/src/sheet/dynamic_event_enemy_type.rs index 1cc7f50b..ed84b2e4 100644 --- a/src/sheet/dynamic_event_enemy_type.rs +++ b/src/sheet/dynamic_event_enemy_type.rs @@ -1,8 +1,8 @@ use crate::error::PopulateError; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; -use std::result::Result; +use ironworks::excel::Row; use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for DynamicEventEnemyType { fn name() -> String { "DynamicEventEnemyType".to_string() diff --git a/src/sheet/dynamic_event_single_battle.rs b/src/sheet/dynamic_event_single_battle.rs index d1d616f2..9cd493b8 100644 --- a/src/sheet/dynamic_event_single_battle.rs +++ b/src/sheet/dynamic_event_single_battle.rs @@ -1,8 +1,8 @@ -use ironworks::sestring::SeString; -use ironworks::excel::Row; -use std::result::Result; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for DynamicEventSingleBattle { fn name() -> String { "DynamicEventSingleBattle".to_string() diff --git a/src/sheet/dynamic_event_type.rs b/src/sheet/dynamic_event_type.rs index da76c67c..eb12d1c0 100644 --- a/src/sheet/dynamic_event_type.rs +++ b/src/sheet/dynamic_event_type.rs @@ -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 DynamicEventType { fn name() -> String { "DynamicEventType".to_string() diff --git a/src/sheet/e_npc_base.rs b/src/sheet/e_npc_base.rs index b0d8e8a6..0d8a26c3 100644 --- a/src/sheet/e_npc_base.rs +++ b/src/sheet/e_npc_base.rs @@ -1,9 +1,9 @@ -use std::result::Result; -use std::vec::Vec; +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use crate::utility::read_array; use ironworks::excel::Row; -use crate::metadata::MetadataAdapter; -use crate::error::PopulateError; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for ENpcBase { fn name() -> String { "ENpcBase".to_string() @@ -51,33 +51,49 @@ pub struct ENpcBase { pub r#behavior: u16, pub r#model_main_hand: u64, pub r#dye_main_hand: u8, + pub r#dye2_main_hand: u8, pub r#model_off_hand: u64, pub r#dye_off_hand: u8, + pub r#dye2_off_hand: u8, pub r#model_head: u32, pub r#dye_head: u8, + pub r#dye2_head: u8, pub r#visor: bool, - pub r#model_body: u32, - pub r#dye_body: u8, - pub r#model_hands: u32, - pub r#dye_hands: u8, - pub r#model_legs: u32, - pub r#dye_legs: u8, - pub r#model_feet: u32, - pub r#dye_feet: u8, - pub r#model_ears: u32, - pub r#dye_ears: u8, - pub r#model_neck: u32, - pub r#dye_neck: u8, - pub r#model_wrists: u32, - pub r#dye_wrists: u8, - pub r#model_left_ring: u32, - pub r#dye_left_ring: u8, - pub r#model_right_ring: u32, - pub r#dye_right_ring: u8, - pub r#invisibility: u8, - pub r#balloon: u16, - pub r#not_rewrite_height: bool, - pub r#default_balloon: u8, + pub r#model_body: bool, + pub r#dye_body: u32, + pub r#dye2_body: u8, + pub r#model_hands: u8, + pub r#dye_hands: u32, + pub r#dye2_hands: u8, + pub r#model_legs: u8, + pub r#dye_legs: u32, + pub r#dye2_legs: u8, + pub r#model_feet: u8, + pub r#dye_feet: u32, + pub r#dye2_feet: u8, + pub r#model_ears: u8, + pub r#dye_ears: u32, + pub r#dye2_ears: u8, + pub r#model_neck: u8, + pub r#dye_neck: u32, + pub r#dye2_neck: u8, + pub r#model_wrists: u8, + pub r#dye_wrists: u32, + pub r#dye2_wrists: u8, + pub r#model_left_ring: u8, + pub r#dye_left_ring: u32, + pub r#dye2_left_ring: u8, + pub r#model_right_ring: u8, + pub r#dye_right_ring: u32, + pub r#dye2_right_ring: u8, + pub r#unknown102: u8, + pub r#unknown103: u16, + pub r#invisibility: u16, + pub r#balloon: u8, + pub r#not_rewrite_height: u16, + pub r#default_balloon: bool, + pub r#unknown108: u8, + pub r#unknown109: u8, } impl ENpcBase { pub fn populate(row: &Row, offset: usize) -> Result { @@ -123,33 +139,49 @@ impl ENpcBase { r#behavior: row.field(64usize + offset)?.into_u16()?, r#model_main_hand: row.field(65usize + offset)?.into_u64()?, r#dye_main_hand: row.field(66usize + offset)?.into_u8()?, - r#model_off_hand: row.field(67usize + offset)?.into_u64()?, - r#dye_off_hand: row.field(68usize + offset)?.into_u8()?, - r#model_head: row.field(69usize + offset)?.into_u32()?, - r#dye_head: row.field(70usize + offset)?.into_u8()?, - r#visor: row.field(71usize + offset)?.into_bool()?, - r#model_body: row.field(72usize + offset)?.into_u32()?, - r#dye_body: row.field(73usize + offset)?.into_u8()?, - r#model_hands: row.field(74usize + offset)?.into_u32()?, - r#dye_hands: row.field(75usize + offset)?.into_u8()?, - r#model_legs: row.field(76usize + offset)?.into_u32()?, - r#dye_legs: row.field(77usize + offset)?.into_u8()?, - r#model_feet: row.field(78usize + offset)?.into_u32()?, - r#dye_feet: row.field(79usize + offset)?.into_u8()?, - r#model_ears: row.field(80usize + offset)?.into_u32()?, - r#dye_ears: row.field(81usize + offset)?.into_u8()?, - r#model_neck: row.field(82usize + offset)?.into_u32()?, - r#dye_neck: row.field(83usize + offset)?.into_u8()?, - r#model_wrists: row.field(84usize + offset)?.into_u32()?, - r#dye_wrists: row.field(85usize + offset)?.into_u8()?, - r#model_left_ring: row.field(86usize + offset)?.into_u32()?, - r#dye_left_ring: row.field(87usize + offset)?.into_u8()?, - r#model_right_ring: row.field(88usize + offset)?.into_u32()?, - r#dye_right_ring: row.field(89usize + offset)?.into_u8()?, - r#invisibility: row.field(90usize + offset)?.into_u8()?, - r#balloon: row.field(91usize + offset)?.into_u16()?, - r#not_rewrite_height: row.field(92usize + offset)?.into_bool()?, - r#default_balloon: row.field(93usize + offset)?.into_u8()?, + r#dye2_main_hand: row.field(67usize + offset)?.into_u8()?, + r#model_off_hand: row.field(68usize + offset)?.into_u64()?, + r#dye_off_hand: row.field(69usize + offset)?.into_u8()?, + r#dye2_off_hand: row.field(70usize + offset)?.into_u8()?, + r#model_head: row.field(71usize + offset)?.into_u32()?, + r#dye_head: row.field(72usize + offset)?.into_u8()?, + r#dye2_head: row.field(73usize + offset)?.into_u8()?, + r#visor: row.field(74usize + offset)?.into_bool()?, + r#model_body: row.field(75usize + offset)?.into_bool()?, + r#dye_body: row.field(76usize + offset)?.into_u32()?, + r#dye2_body: row.field(77usize + offset)?.into_u8()?, + r#model_hands: row.field(78usize + offset)?.into_u8()?, + r#dye_hands: row.field(79usize + offset)?.into_u32()?, + r#dye2_hands: row.field(80usize + offset)?.into_u8()?, + r#model_legs: row.field(81usize + offset)?.into_u8()?, + r#dye_legs: row.field(82usize + offset)?.into_u32()?, + r#dye2_legs: row.field(83usize + offset)?.into_u8()?, + r#model_feet: row.field(84usize + offset)?.into_u8()?, + r#dye_feet: row.field(85usize + offset)?.into_u32()?, + r#dye2_feet: row.field(86usize + offset)?.into_u8()?, + r#model_ears: row.field(87usize + offset)?.into_u8()?, + r#dye_ears: row.field(88usize + offset)?.into_u32()?, + r#dye2_ears: row.field(89usize + offset)?.into_u8()?, + r#model_neck: row.field(90usize + offset)?.into_u8()?, + r#dye_neck: row.field(91usize + offset)?.into_u32()?, + r#dye2_neck: row.field(92usize + offset)?.into_u8()?, + r#model_wrists: row.field(93usize + offset)?.into_u8()?, + r#dye_wrists: row.field(94usize + offset)?.into_u32()?, + r#dye2_wrists: row.field(95usize + offset)?.into_u8()?, + r#model_left_ring: row.field(96usize + offset)?.into_u8()?, + r#dye_left_ring: row.field(97usize + offset)?.into_u32()?, + r#dye2_left_ring: row.field(98usize + offset)?.into_u8()?, + r#model_right_ring: row.field(99usize + offset)?.into_u8()?, + r#dye_right_ring: row.field(100usize + offset)?.into_u32()?, + r#dye2_right_ring: row.field(101usize + offset)?.into_u8()?, + r#unknown102: row.field(102usize + offset)?.into_u8()?, + r#unknown103: row.field(103usize + offset)?.into_u16()?, + r#invisibility: row.field(104usize + offset)?.into_u16()?, + r#balloon: row.field(105usize + offset)?.into_u8()?, + r#not_rewrite_height: row.field(106usize + offset)?.into_u16()?, + r#default_balloon: row.field(107usize + offset)?.into_bool()?, + r#unknown108: row.field(108usize + offset)?.into_u8()?, + r#unknown109: row.field(109usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/e_npc_dress_up.rs b/src/sheet/e_npc_dress_up.rs index 41ec2075..2f0582f8 100644 --- a/src/sheet/e_npc_dress_up.rs +++ b/src/sheet/e_npc_dress_up.rs @@ -1,7 +1,7 @@ -use std::result::Result; -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for ENpcDressUp { fn name() -> String { "ENpcDressUp".to_string() diff --git a/src/sheet/e_npc_dress_up_dress.rs b/src/sheet/e_npc_dress_up_dress.rs index a5591fb1..923aa41d 100644 --- a/src/sheet/e_npc_dress_up_dress.rs +++ b/src/sheet/e_npc_dress_up_dress.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use std::result::Result; -use crate::error::PopulateError; impl MetadataAdapter for ENpcDressUpDress { fn name() -> String { "ENpcDressUpDress".to_string() @@ -52,18 +52,40 @@ pub struct ENpcDressUpDress { pub r#unknown36: u8, pub r#model_main_hand: u64, pub r#dye_main_hand: u8, + pub r#dye2_main_hand: u8, pub r#model_off_hand: u64, pub r#dye_off_hand: u8, + pub r#dye2_off_hand: u8, pub r#model_head: u32, pub r#dye_head: u8, + pub r#dye2_head: u8, pub r#model_body: u32, pub r#dye_body: u8, + pub r#dye2_body: u8, pub r#model_hands: u32, pub r#dye_hands: u8, + pub r#dye2_hands: u8, pub r#model_legs: u32, pub r#dye_legs: u8, + pub r#dye2_legs: u8, pub r#model_feet: u32, pub r#dye_feet: u8, + pub r#dye2_feet: u8, + pub r#unknown58: u32, + pub r#unknown59: u8, + pub r#unknown60: u8, + pub r#unknown61: u32, + pub r#unknown62: u8, + pub r#unknown63: u8, + pub r#unknown64: u32, + pub r#unknown65: u8, + pub r#unknown66: u8, + pub r#unknown67: u32, + pub r#unknown68: u8, + pub r#unknown69: u8, + pub r#unknown70: u32, + pub r#unknown71: u8, + pub r#unknown72: u8, } impl ENpcDressUpDress { pub fn populate(row: &Row, offset: usize) -> Result { @@ -107,18 +129,40 @@ impl ENpcDressUpDress { r#unknown36: row.field(36usize + offset)?.into_u8()?, r#model_main_hand: row.field(37usize + offset)?.into_u64()?, r#dye_main_hand: row.field(38usize + offset)?.into_u8()?, - r#model_off_hand: row.field(39usize + offset)?.into_u64()?, - r#dye_off_hand: row.field(40usize + offset)?.into_u8()?, - r#model_head: row.field(41usize + offset)?.into_u32()?, - r#dye_head: row.field(42usize + offset)?.into_u8()?, - r#model_body: row.field(43usize + offset)?.into_u32()?, - r#dye_body: row.field(44usize + offset)?.into_u8()?, - r#model_hands: row.field(45usize + offset)?.into_u32()?, - r#dye_hands: row.field(46usize + offset)?.into_u8()?, - r#model_legs: row.field(47usize + offset)?.into_u32()?, - r#dye_legs: row.field(48usize + offset)?.into_u8()?, - r#model_feet: row.field(49usize + offset)?.into_u32()?, - r#dye_feet: row.field(50usize + offset)?.into_u8()?, + r#dye2_main_hand: row.field(39usize + offset)?.into_u8()?, + r#model_off_hand: row.field(40usize + offset)?.into_u64()?, + r#dye_off_hand: row.field(41usize + offset)?.into_u8()?, + r#dye2_off_hand: row.field(42usize + offset)?.into_u8()?, + r#model_head: row.field(43usize + offset)?.into_u32()?, + r#dye_head: row.field(44usize + offset)?.into_u8()?, + r#dye2_head: row.field(45usize + offset)?.into_u8()?, + r#model_body: row.field(46usize + offset)?.into_u32()?, + r#dye_body: row.field(47usize + offset)?.into_u8()?, + r#dye2_body: row.field(48usize + offset)?.into_u8()?, + r#model_hands: row.field(49usize + offset)?.into_u32()?, + r#dye_hands: row.field(50usize + offset)?.into_u8()?, + r#dye2_hands: row.field(51usize + offset)?.into_u8()?, + r#model_legs: row.field(52usize + offset)?.into_u32()?, + r#dye_legs: row.field(53usize + offset)?.into_u8()?, + r#dye2_legs: row.field(54usize + offset)?.into_u8()?, + r#model_feet: row.field(55usize + offset)?.into_u32()?, + r#dye_feet: row.field(56usize + offset)?.into_u8()?, + r#dye2_feet: row.field(57usize + offset)?.into_u8()?, + r#unknown58: row.field(58usize + offset)?.into_u32()?, + r#unknown59: row.field(59usize + offset)?.into_u8()?, + r#unknown60: row.field(60usize + offset)?.into_u8()?, + r#unknown61: row.field(61usize + offset)?.into_u32()?, + r#unknown62: row.field(62usize + offset)?.into_u8()?, + r#unknown63: row.field(63usize + offset)?.into_u8()?, + r#unknown64: row.field(64usize + offset)?.into_u32()?, + r#unknown65: row.field(65usize + offset)?.into_u8()?, + r#unknown66: row.field(66usize + offset)?.into_u8()?, + r#unknown67: row.field(67usize + offset)?.into_u32()?, + r#unknown68: row.field(68usize + offset)?.into_u8()?, + r#unknown69: row.field(69usize + offset)?.into_u8()?, + r#unknown70: row.field(70usize + offset)?.into_u32()?, + r#unknown71: row.field(71usize + offset)?.into_u8()?, + r#unknown72: row.field(72usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/e_npc_resident.rs b/src/sheet/e_npc_resident.rs index c9dc35e9..4a6a295b 100644 --- a/src/sheet/e_npc_resident.rs +++ b/src/sheet/e_npc_resident.rs @@ -24,6 +24,7 @@ pub struct ENpcResident { pub r#article: i8, pub r#title: SeString, pub r#map: u8, + pub r#unknown10: bool, } impl ENpcResident { pub fn populate(row: &Row, offset: usize) -> Result { @@ -38,6 +39,7 @@ impl ENpcResident { r#article: row.field(7usize + offset)?.into_i8()?, r#title: row.field(8usize + offset)?.into_string()?, r#map: row.field(9usize + offset)?.into_u8()?, + r#unknown10: row.field(10usize + offset)?.into_bool()?, }) } } diff --git a/src/sheet/e_obj.rs b/src/sheet/e_obj.rs index 3a371323..f99eaede 100644 --- a/src/sheet/e_obj.rs +++ b/src/sheet/e_obj.rs @@ -1,7 +1,7 @@ -use std::result::Result; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for EObj { fn name() -> String { "EObj".to_string() @@ -28,10 +28,11 @@ pub struct EObj { pub r#eye_collision: bool, pub r#director_control: bool, pub r#target: bool, - pub r#event_high_addition: u8, + pub r#event_high_addition: f32, pub r#unknown16: bool, pub r#unknown17: u8, pub r#added_in53: bool, + pub r#unknown19: bool, } impl EObj { pub fn populate(row: &Row, offset: usize) -> Result { @@ -51,10 +52,11 @@ impl EObj { r#eye_collision: row.field(12usize + offset)?.into_bool()?, r#director_control: row.field(13usize + offset)?.into_bool()?, r#target: row.field(14usize + offset)?.into_bool()?, - r#event_high_addition: row.field(15usize + offset)?.into_u8()?, + r#event_high_addition: row.field(15usize + offset)?.into_f32()?, r#unknown16: row.field(16usize + offset)?.into_bool()?, r#unknown17: row.field(17usize + offset)?.into_u8()?, r#added_in53: row.field(18usize + offset)?.into_bool()?, + r#unknown19: row.field(19usize + offset)?.into_bool()?, }) } } diff --git a/src/sheet/e_obj_name.rs b/src/sheet/e_obj_name.rs index 3c6894bf..41faa160 100644 --- a/src/sheet/e_obj_name.rs +++ b/src/sheet/e_obj_name.rs @@ -1,8 +1,8 @@ use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; -use std::result::Result; use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for EObjName { fn name() -> String { "EObjName".to_string() diff --git a/src/sheet/emj_addon.rs b/src/sheet/emj_addon.rs index 490e4a3f..2caca90f 100644 --- a/src/sheet/emj_addon.rs +++ b/src/sheet/emj_addon.rs @@ -1,8 +1,8 @@ -use ironworks::sestring::SeString; -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 std::result::Result; impl MetadataAdapter for EmjAddon { fn name() -> String { "EmjAddon".to_string() diff --git a/src/sheet/emj_dani.rs b/src/sheet/emj_dani.rs index af57becb..68341460 100644 --- a/src/sheet/emj_dani.rs +++ b/src/sheet/emj_dani.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; -use std::result::Result; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for EmjDani { fn name() -> String { "EmjDani".to_string() @@ -14,11 +14,33 @@ impl MetadataAdapter for EmjDani { #[derive(Debug)] pub struct EmjDani { pub r#icon: u32, + pub r#unknown1: u16, + pub r#unknown2: u16, + pub r#unknown3: bool, + pub r#unknown4: i16, + pub r#unknown5: i16, + pub r#unknown6: i16, + pub r#unknown7: i16, + pub r#unknown8: i16, + pub r#unknown9: i16, + pub r#unknown10: i16, + pub r#unknown11: i16, } impl EmjDani { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#icon: row.field(0usize + offset)?.into_u32()?, + r#unknown1: row.field(1usize + offset)?.into_u16()?, + r#unknown2: row.field(2usize + offset)?.into_u16()?, + r#unknown3: row.field(3usize + offset)?.into_bool()?, + r#unknown4: row.field(4usize + offset)?.into_i16()?, + r#unknown5: row.field(5usize + offset)?.into_i16()?, + r#unknown6: row.field(6usize + offset)?.into_i16()?, + r#unknown7: row.field(7usize + offset)?.into_i16()?, + r#unknown8: row.field(8usize + offset)?.into_i16()?, + r#unknown9: row.field(9usize + offset)?.into_i16()?, + r#unknown10: row.field(10usize + offset)?.into_i16()?, + r#unknown11: row.field(11usize + offset)?.into_i16()?, }) } } diff --git a/src/sheet/emote.rs b/src/sheet/emote.rs index f9c72cda..dceec304 100644 --- a/src/sheet/emote.rs +++ b/src/sheet/emote.rs @@ -1,10 +1,10 @@ use crate::error::PopulateError; -use ironworks::sestring::SeString; -use std::vec::Vec; -use std::result::Result; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; use crate::utility::read_array; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for Emote { fn name() -> String { "Emote".to_string() @@ -30,10 +30,11 @@ pub struct Emote { pub r#unknown17: bool, pub r#order: u16, pub r#text_command: i32, - pub r#icon: u16, + pub r#icon: u32, pub r#log_message_targeted: u16, pub r#log_message_untargeted: u16, pub r#unlock_link: u32, + pub r#unknown24: u16, } impl Emote { pub fn populate(row: &Row, offset: usize) -> Result { @@ -57,10 +58,11 @@ impl Emote { r#unknown17: row.field(17usize + offset)?.into_bool()?, r#order: row.field(18usize + offset)?.into_u16()?, r#text_command: row.field(19usize + offset)?.into_i32()?, - r#icon: row.field(20usize + offset)?.into_u16()?, + r#icon: row.field(20usize + offset)?.into_u32()?, r#log_message_targeted: row.field(21usize + offset)?.into_u16()?, r#log_message_untargeted: row.field(22usize + offset)?.into_u16()?, r#unlock_link: row.field(23usize + offset)?.into_u32()?, + r#unknown24: row.field(24usize + offset)?.into_u16()?, }) } } diff --git a/src/sheet/emote_category.rs b/src/sheet/emote_category.rs index 7116f910..b800a3cd 100644 --- a/src/sheet/emote_category.rs +++ b/src/sheet/emote_category.rs @@ -1,7 +1,7 @@ use crate::error::PopulateError; -use ironworks::sestring::SeString; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; use std::result::Result; impl MetadataAdapter for EmoteCategory { fn name() -> String { diff --git a/src/sheet/emote_mode.rs b/src/sheet/emote_mode.rs index 444f7fb4..0483c9c4 100644 --- a/src/sheet/emote_mode.rs +++ b/src/sheet/emote_mode.rs @@ -1,7 +1,7 @@ -use std::result::Result; -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for EmoteMode { fn name() -> String { "EmoteMode".to_string() @@ -20,6 +20,7 @@ pub struct EmoteMode { pub r#end_on_rotate: bool, pub r#end_on_emote: bool, pub r#condition_mode: u8, + pub r#unknown7: bool, } impl EmoteMode { pub fn populate(row: &Row, offset: usize) -> Result { @@ -31,6 +32,7 @@ impl EmoteMode { r#end_on_rotate: row.field(4usize + offset)?.into_bool()?, r#end_on_emote: row.field(5usize + offset)?.into_bool()?, r#condition_mode: row.field(6usize + offset)?.into_u8()?, + r#unknown7: row.field(7usize + offset)?.into_bool()?, }) } } diff --git a/src/sheet/equip_race_category.rs b/src/sheet/equip_race_category.rs index 51782203..6f58869a 100644 --- a/src/sheet/equip_race_category.rs +++ b/src/sheet/equip_race_category.rs @@ -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 EquipRaceCategory { fn name() -> String { "EquipRaceCategory".to_string() diff --git a/src/sheet/equip_slot_category.rs b/src/sheet/equip_slot_category.rs index 88270a71..7c7ab0ba 100644 --- a/src/sheet/equip_slot_category.rs +++ b/src/sheet/equip_slot_category.rs @@ -1,7 +1,7 @@ -use std::result::Result; -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for EquipSlotCategory { fn name() -> String { "EquipSlotCategory".to_string() diff --git a/src/sheet/eureka_aether_item.rs b/src/sheet/eureka_aether_item.rs index 3da6f738..84f96e9a 100644 --- a/src/sheet/eureka_aether_item.rs +++ b/src/sheet/eureka_aether_item.rs @@ -1,8 +1,8 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; use ironworks::excel::Row; use ironworks::sestring::SeString; -use crate::error::PopulateError; +use std::result::Result; impl MetadataAdapter for EurekaAetherItem { fn name() -> String { "EurekaAetherItem".to_string() diff --git a/src/sheet/eureka_aethernet.rs b/src/sheet/eureka_aethernet.rs index db0e10db..359f4815 100644 --- a/src/sheet/eureka_aethernet.rs +++ b/src/sheet/eureka_aethernet.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; -use std::result::Result; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for EurekaAethernet { fn name() -> String { "EurekaAethernet".to_string() diff --git a/src/sheet/eureka_dungeon_portal.rs b/src/sheet/eureka_dungeon_portal.rs new file mode 100644 index 00000000..58020c38 --- /dev/null +++ b/src/sheet/eureka_dungeon_portal.rs @@ -0,0 +1,24 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; +impl MetadataAdapter for EurekaDungeonPortal { + fn name() -> String { + "EurekaDungeonPortal".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(EurekaDungeonPortal::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct EurekaDungeonPortal { + pub r#level_id: u32, +} +impl EurekaDungeonPortal { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#level_id: row.field(0usize + offset)?.into_u32()?, + }) + } +} diff --git a/src/sheet/eureka_grow_data.rs b/src/sheet/eureka_grow_data.rs index 9d761c37..e0ab30ea 100644 --- a/src/sheet/eureka_grow_data.rs +++ b/src/sheet/eureka_grow_data.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use std::result::Result; -use crate::error::PopulateError; impl MetadataAdapter for EurekaGrowData { fn name() -> String { "EurekaGrowData".to_string() diff --git a/src/sheet/eureka_logos_mixer_probability.rs b/src/sheet/eureka_logos_mixer_probability.rs index 47e81261..87814ea4 100644 --- a/src/sheet/eureka_logos_mixer_probability.rs +++ b/src/sheet/eureka_logos_mixer_probability.rs @@ -1,7 +1,7 @@ use crate::error::PopulateError; -use std::result::Result; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for EurekaLogosMixerProbability { fn name() -> String { "EurekaLogosMixerProbability".to_string() diff --git a/src/sheet/eureka_magia_action.rs b/src/sheet/eureka_magia_action.rs index 0d352232..ca646114 100644 --- a/src/sheet/eureka_magia_action.rs +++ b/src/sheet/eureka_magia_action.rs @@ -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 EurekaMagiaAction { fn name() -> String { diff --git a/src/sheet/eureka_magicite_item.rs b/src/sheet/eureka_magicite_item.rs index 78db8a23..fc41544c 100644 --- a/src/sheet/eureka_magicite_item.rs +++ b/src/sheet/eureka_magicite_item.rs @@ -1,7 +1,7 @@ -use std::result::Result; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for EurekaMagiciteItem { fn name() -> String { "EurekaMagiciteItem".to_string() diff --git a/src/sheet/eureka_magicite_item_type.rs b/src/sheet/eureka_magicite_item_type.rs index d3a51bc4..3a5ea155 100644 --- a/src/sheet/eureka_magicite_item_type.rs +++ b/src/sheet/eureka_magicite_item_type.rs @@ -1,7 +1,7 @@ -use ironworks::sestring::SeString; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use ironworks::sestring::SeString; use std::result::Result; impl MetadataAdapter for EurekaMagiciteItemType { fn name() -> String { diff --git a/src/sheet/eureka_sphere_element_adjust.rs b/src/sheet/eureka_sphere_element_adjust.rs index 2c6de4ac..a212887c 100644 --- a/src/sheet/eureka_sphere_element_adjust.rs +++ b/src/sheet/eureka_sphere_element_adjust.rs @@ -1,7 +1,7 @@ -use crate::metadata::MetadataAdapter; -use std::result::Result; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for EurekaSphereElementAdjust { fn name() -> String { "EurekaSphereElementAdjust".to_string() diff --git a/src/sheet/event_action.rs b/src/sheet/event_action.rs index d7ca8363..0cdd16af 100644 --- a/src/sheet/event_action.rs +++ b/src/sheet/event_action.rs @@ -1,10 +1,10 @@ use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use ironworks::sestring::SeString; -use std::vec::Vec; -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 EventAction { fn name() -> String { "EventAction".to_string() diff --git a/src/sheet/event_custom_icon_type.rs b/src/sheet/event_custom_icon_type.rs index ebef23be..066a0292 100644 --- a/src/sheet/event_custom_icon_type.rs +++ b/src/sheet/event_custom_icon_type.rs @@ -1,9 +1,9 @@ -use std::vec::Vec; -use crate::utility::read_array; -use std::result::Result; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use crate::utility::read_array; use ironworks::excel::Row; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for EventCustomIconType { fn name() -> String { "EventCustomIconType".to_string() @@ -20,6 +20,7 @@ pub struct EventCustomIconType { pub r#map_announce_quest0: Vec, pub r#map_announce_quest_locked: Vec, pub r#map_announce_quest1: Vec, + pub r#unknown50: u8, } impl EventCustomIconType { pub fn populate(row: &Row, offset: usize) -> Result { @@ -54,6 +55,7 @@ impl EventCustomIconType { 1usize, |offset| { Result::Ok(row.field(40usize + offset)?.into_u32()?) }, )?, + r#unknown50: row.field(50usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/event_icon_priority.rs b/src/sheet/event_icon_priority.rs index 2f04c9c0..bdbc626d 100644 --- a/src/sheet/event_icon_priority.rs +++ b/src/sheet/event_icon_priority.rs @@ -1,9 +1,9 @@ -use std::result::Result; -use std::vec::Vec; +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use crate::utility::read_array; use ironworks::excel::Row; -use crate::metadata::MetadataAdapter; -use crate::error::PopulateError; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for EventIconPriority { fn name() -> String { "EventIconPriority".to_string() @@ -16,6 +16,16 @@ impl MetadataAdapter for EventIconPriority { #[derive(Debug)] pub struct EventIconPriority { pub r#icon: Vec, + pub r#unknown19: u32, + pub r#unknown20: u32, + pub r#unknown21: u32, + pub r#unknown22: u32, + pub r#unknown23: u32, + pub r#unknown24: u32, + pub r#unknown25: u32, + pub r#unknown26: u32, + pub r#unknown27: u32, + pub r#unknown28: u32, } impl EventIconPriority { pub fn populate(row: &Row, offset: usize) -> Result { @@ -26,6 +36,16 @@ impl EventIconPriority { 1usize, |offset| { Result::Ok(row.field(0usize + offset)?.into_u32()?) }, )?, + r#unknown19: row.field(19usize + offset)?.into_u32()?, + r#unknown20: row.field(20usize + offset)?.into_u32()?, + r#unknown21: row.field(21usize + offset)?.into_u32()?, + r#unknown22: row.field(22usize + offset)?.into_u32()?, + r#unknown23: row.field(23usize + offset)?.into_u32()?, + r#unknown24: row.field(24usize + offset)?.into_u32()?, + r#unknown25: row.field(25usize + offset)?.into_u32()?, + r#unknown26: row.field(26usize + offset)?.into_u32()?, + r#unknown27: row.field(27usize + offset)?.into_u32()?, + r#unknown28: row.field(28usize + offset)?.into_u32()?, }) } } diff --git a/src/sheet/event_icon_priority_pair.rs b/src/sheet/event_icon_priority_pair.rs new file mode 100644 index 00000000..88b2df63 --- /dev/null +++ b/src/sheet/event_icon_priority_pair.rs @@ -0,0 +1,24 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; +impl MetadataAdapter for EventIconPriorityPair { + fn name() -> String { + "EventIconPriorityPair".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(EventIconPriorityPair::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct EventIconPriorityPair { + pub r#icon: u32, +} +impl EventIconPriorityPair { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#icon: row.field(0usize + offset)?.into_u32()?, + }) + } +} diff --git a/src/sheet/event_icon_type.rs b/src/sheet/event_icon_type.rs index 10c88b88..8dfdcc02 100644 --- a/src/sheet/event_icon_type.rs +++ b/src/sheet/event_icon_type.rs @@ -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 EventIconType { fn name() -> String { "EventIconType".to_string() diff --git a/src/sheet/event_item.rs b/src/sheet/event_item.rs index d0a1d073..2d0e91e0 100644 --- a/src/sheet/event_item.rs +++ b/src/sheet/event_item.rs @@ -1,8 +1,8 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; -use std::result::Result; use ironworks::sestring::SeString; -use crate::error::PopulateError; +use std::result::Result; impl MetadataAdapter for EventItem { fn name() -> String { "EventItem".to_string() diff --git a/src/sheet/event_item_cast_timeline.rs b/src/sheet/event_item_cast_timeline.rs index dd9d73cc..7d651e28 100644 --- a/src/sheet/event_item_cast_timeline.rs +++ b/src/sheet/event_item_cast_timeline.rs @@ -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 EventItemCastTimeline { fn name() -> String { diff --git a/src/sheet/event_item_help.rs b/src/sheet/event_item_help.rs index ed3c2c05..ba2115f0 100644 --- a/src/sheet/event_item_help.rs +++ b/src/sheet/event_item_help.rs @@ -1,8 +1,8 @@ -use ironworks::sestring::SeString; use crate::error::PopulateError; -use std::result::Result; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for EventItemHelp { fn name() -> String { "EventItemHelp".to_string() @@ -15,11 +15,13 @@ impl MetadataAdapter for EventItemHelp { #[derive(Debug)] pub struct EventItemHelp { pub r#description: SeString, + pub r#unknown1: bool, } impl EventItemHelp { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#description: row.field(0usize + offset)?.into_string()?, + r#unknown1: row.field(1usize + offset)?.into_bool()?, }) } } diff --git a/src/sheet/event_item_timeline.rs b/src/sheet/event_item_timeline.rs index a3b3a4b2..12890937 100644 --- a/src/sheet/event_item_timeline.rs +++ b/src/sheet/event_item_timeline.rs @@ -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 EventItemTimeline { fn name() -> String { "EventItemTimeline".to_string() diff --git a/src/sheet/event_path_move.rs b/src/sheet/event_path_move.rs index 34dee791..87b09dbc 100644 --- a/src/sheet/event_path_move.rs +++ b/src/sheet/event_path_move.rs @@ -1,7 +1,8 @@ use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use ironworks::sestring::SeString; use std::result::Result; -use crate::metadata::MetadataAdapter; impl MetadataAdapter for EventPathMove { fn name() -> String { "EventPathMove".to_string() @@ -12,9 +13,35 @@ impl MetadataAdapter for EventPathMove { } } #[derive(Debug)] -pub struct EventPathMove {} +pub struct EventPathMove { + pub r#unknown0: u32, + pub r#unknown1: u16, + pub r#unknown2: bool, + pub r#unknown3: u8, + pub r#unknown4: u16, + pub r#unknown5: u32, + pub r#unknown6: u32, + pub r#unknown7: u32, + pub r#unknown8: u32, + pub r#unknown9: u32, + pub r#unknown10: SeString, + pub r#unknown11: SeString, +} impl EventPathMove { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u32()?, + r#unknown1: row.field(1usize + offset)?.into_u16()?, + r#unknown2: row.field(2usize + offset)?.into_bool()?, + r#unknown3: row.field(3usize + offset)?.into_u8()?, + r#unknown4: row.field(4usize + offset)?.into_u16()?, + r#unknown5: row.field(5usize + offset)?.into_u32()?, + r#unknown6: row.field(6usize + offset)?.into_u32()?, + r#unknown7: row.field(7usize + offset)?.into_u32()?, + r#unknown8: row.field(8usize + offset)?.into_u32()?, + r#unknown9: row.field(9usize + offset)?.into_u32()?, + r#unknown10: row.field(10usize + offset)?.into_string()?, + r#unknown11: row.field(11usize + offset)?.into_string()?, + }) } } diff --git a/src/sheet/event_system_define.rs b/src/sheet/event_system_define.rs index 3287fe11..04e82912 100644 --- a/src/sheet/event_system_define.rs +++ b/src/sheet/event_system_define.rs @@ -1,7 +1,7 @@ -use ironworks::sestring::SeString; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use ironworks::sestring::SeString; use std::result::Result; impl MetadataAdapter for EventSystemDefine { fn name() -> String { diff --git a/src/sheet/ex_version.rs b/src/sheet/ex_version.rs index 46c1bfee..0c255157 100644 --- a/src/sheet/ex_version.rs +++ b/src/sheet/ex_version.rs @@ -1,8 +1,8 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; -use std::result::Result; use ironworks::sestring::SeString; -use crate::error::PopulateError; +use std::result::Result; impl MetadataAdapter for ExVersion { fn name() -> String { "ExVersion".to_string() @@ -17,6 +17,8 @@ pub struct ExVersion { pub r#name: SeString, pub r#accept_jingle: u16, pub r#complete_jingle: u16, + pub r#unknown3: u32, + pub r#unknown4: u32, } impl ExVersion { pub fn populate(row: &Row, offset: usize) -> Result { @@ -24,6 +26,8 @@ impl ExVersion { r#name: row.field(0usize + offset)?.into_string()?, r#accept_jingle: row.field(1usize + offset)?.into_u16()?, r#complete_jingle: row.field(2usize + offset)?.into_u16()?, + r#unknown3: row.field(3usize + offset)?.into_u32()?, + r#unknown4: row.field(4usize + offset)?.into_u32()?, }) } } diff --git a/src/sheet/exported_gathering_point.rs b/src/sheet/exported_gathering_point.rs index b27d2de3..4cc5b0f2 100644 --- a/src/sheet/exported_gathering_point.rs +++ b/src/sheet/exported_gathering_point.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use std::result::Result; -use crate::error::PopulateError; impl MetadataAdapter for ExportedGatheringPoint { fn name() -> String { "ExportedGatheringPoint".to_string() diff --git a/src/sheet/exported_sg.rs b/src/sheet/exported_sg.rs index 06e41f9d..c9393c25 100644 --- a/src/sheet/exported_sg.rs +++ b/src/sheet/exported_sg.rs @@ -1,8 +1,8 @@ -use std::result::Result; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use ironworks::sestring::SeString; use ironworks::excel::Row; -use crate::error::PopulateError; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for ExportedSG { fn name() -> String { "ExportedSG".to_string() diff --git a/src/sheet/extra_command.rs b/src/sheet/extra_command.rs new file mode 100644 index 00000000..c694b2c6 --- /dev/null +++ b/src/sheet/extra_command.rs @@ -0,0 +1,31 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; +impl MetadataAdapter for ExtraCommand { + fn name() -> String { + "ExtraCommand".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(ExtraCommand::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct ExtraCommand { + pub r#name: SeString, + pub r#description: SeString, + pub r#icon: i32, + pub r#order: i8, +} +impl ExtraCommand { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#name: row.field(0usize + offset)?.into_string()?, + r#description: row.field(1usize + offset)?.into_string()?, + r#icon: row.field(2usize + offset)?.into_i32()?, + r#order: row.field(3usize + offset)?.into_i8()?, + }) + } +} diff --git a/src/sheet/fashion_check_theme_category.rs b/src/sheet/fashion_check_theme_category.rs new file mode 100644 index 00000000..aba6f65e --- /dev/null +++ b/src/sheet/fashion_check_theme_category.rs @@ -0,0 +1,25 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; +impl MetadataAdapter for FashionCheckThemeCategory { + fn name() -> String { + "FashionCheckThemeCategory".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(FashionCheckThemeCategory::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct FashionCheckThemeCategory { + pub r#name: SeString, +} +impl FashionCheckThemeCategory { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#name: row.field(0usize + offset)?.into_string()?, + }) + } +} diff --git a/src/sheet/fashion_check_weekly_theme.rs b/src/sheet/fashion_check_weekly_theme.rs new file mode 100644 index 00000000..3d209f3e --- /dev/null +++ b/src/sheet/fashion_check_weekly_theme.rs @@ -0,0 +1,25 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; +impl MetadataAdapter for FashionCheckWeeklyTheme { + fn name() -> String { + "FashionCheckWeeklyTheme".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(FashionCheckWeeklyTheme::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct FashionCheckWeeklyTheme { + pub r#name: SeString, +} +impl FashionCheckWeeklyTheme { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#name: row.field(0usize + offset)?.into_string()?, + }) + } +} diff --git a/src/sheet/fate.rs b/src/sheet/fate.rs index 744b33cb..84fc8f3c 100644 --- a/src/sheet/fate.rs +++ b/src/sheet/fate.rs @@ -1,10 +1,10 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; -use ironworks::sestring::SeString; +use crate::utility::read_array; use ironworks::excel::Row; -use crate::error::PopulateError; +use ironworks::sestring::SeString; +use std::result::Result; use std::vec::Vec; -use crate::utility::read_array; impl MetadataAdapter for Fate { fn name() -> String { "Fate".to_string() @@ -31,7 +31,7 @@ pub struct Fate { pub r#icon_objective: u32, pub r#icon_map: u32, pub r#icon_inactive_map: u32, - pub r#music: i32, + pub r#music: u16, pub r#lgb_guard_npc_location: u32, pub r#screen_image_accept: u16, pub r#screen_image_complete: u16, @@ -47,8 +47,8 @@ pub struct Fate { pub r#unknown32: bool, pub r#fate_chain: u32, pub r#unknown34: u8, - pub r#unknown35: u16, - pub r#array_index: u32, + pub r#unknown35: u32, + pub r#array_index: u16, pub r#unknown37: u32, pub r#req_event_item: u32, pub r#turn_in_event_item: u32, @@ -56,6 +56,66 @@ pub struct Fate { pub r#unknown41: u32, pub r#unknown42: u32, pub r#objective_icon: Vec, + pub r#unknown51: u32, + pub r#unknown52: u32, + pub r#unknown53: u32, + pub r#unknown54: u32, + pub r#unknown55: u32, + pub r#unknown56: u32, + pub r#unknown57: u32, + pub r#unknown58: u32, + pub r#unknown59: u32, + pub r#unknown60: u32, + pub r#unknown61: u32, + pub r#unknown62: u32, + pub r#unknown63: u32, + pub r#unknown64: u32, + pub r#unknown65: u32, + pub r#unknown66: u32, + pub r#unknown67: u32, + pub r#unknown68: u32, + pub r#unknown69: u32, + pub r#unknown70: u32, + pub r#unknown71: u32, + pub r#unknown72: u32, + pub r#unknown73: u32, + pub r#unknown74: u32, + pub r#unknown75: u32, + pub r#unknown76: u32, + pub r#unknown77: u32, + pub r#unknown78: u32, + pub r#unknown79: u16, + pub r#unknown80: u16, + pub r#unknown81: u16, + pub r#unknown82: u16, + pub r#unknown83: u16, + pub r#unknown84: u16, + pub r#unknown85: u16, + pub r#unknown86: u16, + pub r#unknown87: u16, + pub r#unknown88: u16, + pub r#unknown89: u16, + pub r#unknown90: u16, + pub r#unknown91: u16, + pub r#unknown92: u16, + pub r#unknown93: u16, + pub r#unknown94: u16, + pub r#unknown95: u16, + pub r#unknown96: u16, + pub r#unknown97: u16, + pub r#unknown98: u16, + pub r#unknown99: u16, + pub r#unknown100: u16, + pub r#unknown101: u16, + pub r#unknown102: u16, + pub r#unknown103: u16, + pub r#unknown104: u16, + pub r#unknown105: u16, + pub r#unknown106: u16, + pub r#unknown107: u16, + pub r#unknown108: u16, + pub r#unknown109: u16, + pub r#unknown110: u16, } impl Fate { pub fn populate(row: &Row, offset: usize) -> Result { @@ -85,7 +145,7 @@ impl Fate { r#icon_objective: row.field(16usize + offset)?.into_u32()?, r#icon_map: row.field(17usize + offset)?.into_u32()?, r#icon_inactive_map: row.field(18usize + offset)?.into_u32()?, - r#music: row.field(19usize + offset)?.into_i32()?, + r#music: row.field(19usize + offset)?.into_u16()?, r#lgb_guard_npc_location: row.field(20usize + offset)?.into_u32()?, r#screen_image_accept: row.field(21usize + offset)?.into_u16()?, r#screen_image_complete: row.field(22usize + offset)?.into_u16()?, @@ -101,8 +161,8 @@ impl Fate { r#unknown32: row.field(32usize + offset)?.into_bool()?, r#fate_chain: row.field(33usize + offset)?.into_u32()?, r#unknown34: row.field(34usize + offset)?.into_u8()?, - r#unknown35: row.field(35usize + offset)?.into_u16()?, - r#array_index: row.field(36usize + offset)?.into_u32()?, + r#unknown35: row.field(35usize + offset)?.into_u32()?, + r#array_index: row.field(36usize + offset)?.into_u16()?, r#unknown37: row.field(37usize + offset)?.into_u32()?, r#req_event_item: row.field(38usize + offset)?.into_u32()?, r#turn_in_event_item: row.field(39usize + offset)?.into_u32()?, @@ -115,6 +175,66 @@ impl Fate { 1usize, |offset| { Result::Ok(row.field(43usize + offset)?.into_u32()?) }, )?, + r#unknown51: row.field(51usize + offset)?.into_u32()?, + r#unknown52: row.field(52usize + offset)?.into_u32()?, + r#unknown53: row.field(53usize + offset)?.into_u32()?, + r#unknown54: row.field(54usize + offset)?.into_u32()?, + r#unknown55: row.field(55usize + offset)?.into_u32()?, + r#unknown56: row.field(56usize + offset)?.into_u32()?, + r#unknown57: row.field(57usize + offset)?.into_u32()?, + r#unknown58: row.field(58usize + offset)?.into_u32()?, + r#unknown59: row.field(59usize + offset)?.into_u32()?, + r#unknown60: row.field(60usize + offset)?.into_u32()?, + r#unknown61: row.field(61usize + offset)?.into_u32()?, + r#unknown62: row.field(62usize + offset)?.into_u32()?, + r#unknown63: row.field(63usize + offset)?.into_u32()?, + r#unknown64: row.field(64usize + offset)?.into_u32()?, + r#unknown65: row.field(65usize + offset)?.into_u32()?, + r#unknown66: row.field(66usize + offset)?.into_u32()?, + r#unknown67: row.field(67usize + offset)?.into_u32()?, + r#unknown68: row.field(68usize + offset)?.into_u32()?, + r#unknown69: row.field(69usize + offset)?.into_u32()?, + r#unknown70: row.field(70usize + offset)?.into_u32()?, + r#unknown71: row.field(71usize + offset)?.into_u32()?, + r#unknown72: row.field(72usize + offset)?.into_u32()?, + r#unknown73: row.field(73usize + offset)?.into_u32()?, + r#unknown74: row.field(74usize + offset)?.into_u32()?, + r#unknown75: row.field(75usize + offset)?.into_u32()?, + r#unknown76: row.field(76usize + offset)?.into_u32()?, + r#unknown77: row.field(77usize + offset)?.into_u32()?, + r#unknown78: row.field(78usize + offset)?.into_u32()?, + r#unknown79: row.field(79usize + offset)?.into_u16()?, + r#unknown80: row.field(80usize + offset)?.into_u16()?, + r#unknown81: row.field(81usize + offset)?.into_u16()?, + r#unknown82: row.field(82usize + offset)?.into_u16()?, + r#unknown83: row.field(83usize + offset)?.into_u16()?, + r#unknown84: row.field(84usize + offset)?.into_u16()?, + r#unknown85: row.field(85usize + offset)?.into_u16()?, + r#unknown86: row.field(86usize + offset)?.into_u16()?, + r#unknown87: row.field(87usize + offset)?.into_u16()?, + r#unknown88: row.field(88usize + offset)?.into_u16()?, + r#unknown89: row.field(89usize + offset)?.into_u16()?, + r#unknown90: row.field(90usize + offset)?.into_u16()?, + r#unknown91: row.field(91usize + offset)?.into_u16()?, + r#unknown92: row.field(92usize + offset)?.into_u16()?, + r#unknown93: row.field(93usize + offset)?.into_u16()?, + r#unknown94: row.field(94usize + offset)?.into_u16()?, + r#unknown95: row.field(95usize + offset)?.into_u16()?, + r#unknown96: row.field(96usize + offset)?.into_u16()?, + r#unknown97: row.field(97usize + offset)?.into_u16()?, + r#unknown98: row.field(98usize + offset)?.into_u16()?, + r#unknown99: row.field(99usize + offset)?.into_u16()?, + r#unknown100: row.field(100usize + offset)?.into_u16()?, + r#unknown101: row.field(101usize + offset)?.into_u16()?, + r#unknown102: row.field(102usize + offset)?.into_u16()?, + r#unknown103: row.field(103usize + offset)?.into_u16()?, + r#unknown104: row.field(104usize + offset)?.into_u16()?, + r#unknown105: row.field(105usize + offset)?.into_u16()?, + r#unknown106: row.field(106usize + offset)?.into_u16()?, + r#unknown107: row.field(107usize + offset)?.into_u16()?, + r#unknown108: row.field(108usize + offset)?.into_u16()?, + r#unknown109: row.field(109usize + offset)?.into_u16()?, + r#unknown110: row.field(110usize + offset)?.into_u16()?, }) } } diff --git a/src/sheet/fate_event.rs b/src/sheet/fate_event.rs index 67ad8ee8..1f39b194 100644 --- a/src/sheet/fate_event.rs +++ b/src/sheet/fate_event.rs @@ -1,10 +1,10 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use ironworks::excel::Row; use crate::utility::read_array; +use ironworks::excel::Row; use ironworks::sestring::SeString; -use std::vec::Vec; -use crate::error::PopulateError; use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for FateEvent { fn name() -> String { "FateEvent".to_string() diff --git a/src/sheet/fate_mode.rs b/src/sheet/fate_mode.rs index 296ecda4..e9a7e4ab 100644 --- a/src/sheet/fate_mode.rs +++ b/src/sheet/fate_mode.rs @@ -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 FateMode { fn name() -> String { "FateMode".to_string() diff --git a/src/sheet/fate_progress_ui.rs b/src/sheet/fate_progress_ui.rs index 0a1e0713..fdec294f 100644 --- a/src/sheet/fate_progress_ui.rs +++ b/src/sheet/fate_progress_ui.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; use crate::error::PopulateError; -use std::result::Result; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for FateProgressUI { fn name() -> String { "FateProgressUI".to_string() @@ -14,9 +14,9 @@ impl MetadataAdapter for FateProgressUI { #[derive(Debug)] pub struct FateProgressUI { pub r#location: i32, - pub r#achievement: i32, pub r#req_fates_to_rank2: u8, pub r#req_fates_to_rank3: u8, + pub r#req_fates_to_rank4: u8, pub r#unknown4: i8, pub r#display_order: u8, } @@ -24,9 +24,9 @@ impl FateProgressUI { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#location: row.field(0usize + offset)?.into_i32()?, - r#achievement: row.field(1usize + offset)?.into_i32()?, - r#req_fates_to_rank2: row.field(2usize + offset)?.into_u8()?, - r#req_fates_to_rank3: row.field(3usize + offset)?.into_u8()?, + r#req_fates_to_rank2: row.field(1usize + offset)?.into_u8()?, + r#req_fates_to_rank3: row.field(2usize + offset)?.into_u8()?, + r#req_fates_to_rank4: row.field(3usize + offset)?.into_u8()?, r#unknown4: row.field(4usize + offset)?.into_i8()?, r#display_order: row.field(5usize + offset)?.into_u8()?, }) diff --git a/src/sheet/fate_shop.rs b/src/sheet/fate_shop.rs index 3c8467d0..4454151f 100644 --- a/src/sheet/fate_shop.rs +++ b/src/sheet/fate_shop.rs @@ -1,9 +1,10 @@ -use std::vec::Vec; -use crate::metadata::MetadataAdapter; -use ironworks::excel::Row; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use crate::utility::read_array; +use ironworks::excel::Row; +use std::convert::Infallible; use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for FateShop { fn name() -> String { "FateShop".to_string() @@ -16,22 +17,22 @@ impl MetadataAdapter for FateShop { #[derive(Debug)] pub struct FateShop { pub r#special_shop: Vec, - pub r#default_talk: Vec, + pub r#default_talk: Vec>, } impl FateShop { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#special_shop: read_array( offset, - 2usize, + 3usize, 1usize, |offset| { Result::Ok(row.field(0usize + offset)?.into_u32()?) }, )?, r#default_talk: read_array( offset, - 8usize, + 10usize, 1usize, - |offset| { Result::Ok(row.field(2usize + offset)?.into_u32()?) }, + |offset| { Result::Ok(None) }, )?, }) } diff --git a/src/sheet/fate_token_type.rs b/src/sheet/fate_token_type.rs index 7a07dc69..497ab185 100644 --- a/src/sheet/fate_token_type.rs +++ b/src/sheet/fate_token_type.rs @@ -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 FateTokenType { fn name() -> String { "FateTokenType".to_string() diff --git a/src/sheet/fc_activity.rs b/src/sheet/fc_activity.rs index b1a6d8a4..87892ca9 100644 --- a/src/sheet/fc_activity.rs +++ b/src/sheet/fc_activity.rs @@ -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 ironworks::sestring::SeString; use std::result::Result; impl MetadataAdapter for FCActivity { diff --git a/src/sheet/fc_activity_category.rs b/src/sheet/fc_activity_category.rs index c4332a2a..aef748c6 100644 --- a/src/sheet/fc_activity_category.rs +++ b/src/sheet/fc_activity_category.rs @@ -1,8 +1,8 @@ -use ironworks::sestring::SeString; -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 std::result::Result; impl MetadataAdapter for FCActivityCategory { fn name() -> String { "FCActivityCategory".to_string() diff --git a/src/sheet/fc_authority.rs b/src/sheet/fc_authority.rs index 9debc5f6..7d140357 100644 --- a/src/sheet/fc_authority.rs +++ b/src/sheet/fc_authority.rs @@ -1,8 +1,8 @@ -use ironworks::excel::Row; -use std::result::Result; -use ironworks::sestring::SeString; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for FCAuthority { fn name() -> String { "FCAuthority".to_string() @@ -16,12 +16,14 @@ impl MetadataAdapter for FCAuthority { pub struct FCAuthority { pub r#name: SeString, pub r#fc_authority_category: i32, + pub r#unknown2: u8, } impl FCAuthority { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#name: row.field(0usize + offset)?.into_string()?, r#fc_authority_category: row.field(1usize + offset)?.into_i32()?, + r#unknown2: row.field(2usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/fc_authority_category.rs b/src/sheet/fc_authority_category.rs index 817a4d59..7c2edc63 100644 --- a/src/sheet/fc_authority_category.rs +++ b/src/sheet/fc_authority_category.rs @@ -1,8 +1,8 @@ -use std::result::Result; use crate::error::PopulateError; -use ironworks::sestring::SeString; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for FCAuthorityCategory { fn name() -> String { "FCAuthorityCategory".to_string() diff --git a/src/sheet/fc_chest_name.rs b/src/sheet/fc_chest_name.rs index 5dc2eff0..bdf91e43 100644 --- a/src/sheet/fc_chest_name.rs +++ b/src/sheet/fc_chest_name.rs @@ -1,8 +1,8 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; use ironworks::sestring::SeString; -use crate::error::PopulateError; use std::result::Result; -use crate::metadata::MetadataAdapter; impl MetadataAdapter for FCChestName { fn name() -> String { "FCChestName".to_string() @@ -15,11 +15,13 @@ impl MetadataAdapter for FCChestName { #[derive(Debug)] pub struct FCChestName { pub r#name: SeString, + pub r#unknown1: u8, } impl FCChestName { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#name: row.field(0usize + offset)?.into_string()?, + r#unknown1: row.field(1usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/fc_crest_symbol.rs b/src/sheet/fc_crest_symbol.rs index 99c3a4b4..b6022616 100644 --- a/src/sheet/fc_crest_symbol.rs +++ b/src/sheet/fc_crest_symbol.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; -use std::result::Result; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for FCCrestSymbol { fn name() -> String { "FCCrestSymbol".to_string() @@ -15,12 +15,14 @@ impl MetadataAdapter for FCCrestSymbol { pub struct FCCrestSymbol { pub r#color_num: u8, pub r#fc_right: u8, + pub r#unknown2: u16, } impl FCCrestSymbol { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#color_num: row.field(0usize + offset)?.into_u8()?, r#fc_right: row.field(1usize + offset)?.into_u8()?, + r#unknown2: row.field(2usize + offset)?.into_u16()?, }) } } diff --git a/src/sheet/fc_hierarchy.rs b/src/sheet/fc_hierarchy.rs index c599d642..aec93689 100644 --- a/src/sheet/fc_hierarchy.rs +++ b/src/sheet/fc_hierarchy.rs @@ -1,7 +1,7 @@ use crate::error::PopulateError; -use ironworks::sestring::SeString; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; use std::result::Result; impl MetadataAdapter for FCHierarchy { fn name() -> String { diff --git a/src/sheet/fc_profile.rs b/src/sheet/fc_profile.rs index 7603e2ae..a3eb668e 100644 --- a/src/sheet/fc_profile.rs +++ b/src/sheet/fc_profile.rs @@ -1,7 +1,7 @@ -use ironworks::sestring::SeString; -use ironworks::excel::Row; -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; use std::result::Result; impl MetadataAdapter for FCProfile { fn name() -> String { diff --git a/src/sheet/fc_rank.rs b/src/sheet/fc_rank.rs index f21f23bc..eedd88e6 100644 --- a/src/sheet/fc_rank.rs +++ b/src/sheet/fc_rank.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use std::result::Result; -use crate::error::PopulateError; impl MetadataAdapter for FCRank { fn name() -> String { "FCRank".to_string() diff --git a/src/sheet/fc_reputation.rs b/src/sheet/fc_reputation.rs index 5904c71c..db8a93da 100644 --- a/src/sheet/fc_reputation.rs +++ b/src/sheet/fc_reputation.rs @@ -1,8 +1,8 @@ -use ironworks::sestring::SeString; +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 FCReputation { fn name() -> String { "FCReputation".to_string() diff --git a/src/sheet/fc_rights.rs b/src/sheet/fc_rights.rs index a0e4b83e..8a9cb397 100644 --- a/src/sheet/fc_rights.rs +++ b/src/sheet/fc_rights.rs @@ -1,8 +1,8 @@ -use ironworks::sestring::SeString; -use std::result::Result; use crate::error::PopulateError; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for FCRights { fn name() -> String { "FCRights".to_string() diff --git a/src/sheet/fcc_shop.rs b/src/sheet/fcc_shop.rs index 80a74d66..b6c81963 100644 --- a/src/sheet/fcc_shop.rs +++ b/src/sheet/fcc_shop.rs @@ -1,10 +1,10 @@ -use std::result::Result; -use std::vec::Vec; -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use crate::utility::read_array; -use ironworks::sestring::SeString; use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for FccShop { fn name() -> String { "FccShop".to_string() diff --git a/src/sheet/festival.rs b/src/sheet/festival.rs index 7c2700f7..52ef7f90 100644 --- a/src/sheet/festival.rs +++ b/src/sheet/festival.rs @@ -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::metadata::MetadataAdapter; -use crate::error::PopulateError; impl MetadataAdapter for Festival { fn name() -> String { "Festival".to_string() @@ -15,11 +15,15 @@ impl MetadataAdapter for Festival { #[derive(Debug)] pub struct Festival { pub r#name: SeString, + pub r#unknown1: u8, + pub r#unknown2: u8, } impl Festival { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#name: row.field(0usize + offset)?.into_string()?, + r#unknown1: row.field(1usize + offset)?.into_u8()?, + r#unknown2: row.field(2usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/fgs_addon.rs b/src/sheet/fgs_addon.rs new file mode 100644 index 00000000..bac88219 --- /dev/null +++ b/src/sheet/fgs_addon.rs @@ -0,0 +1,25 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; +impl MetadataAdapter for FGSAddon { + fn name() -> String { + "FGSAddon".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(FGSAddon::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct FGSAddon { + pub r#unknown0: SeString, +} +impl FGSAddon { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_string()?, + }) + } +} diff --git a/src/sheet/fgs_stage_ui.rs b/src/sheet/fgs_stage_ui.rs new file mode 100644 index 00000000..0184b2e4 --- /dev/null +++ b/src/sheet/fgs_stage_ui.rs @@ -0,0 +1,38 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; +impl MetadataAdapter for FGSStageUI { + fn name() -> String { + "FGSStageUI".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(FGSStageUI::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct FGSStageUI { + pub r#unknown0: u16, + pub r#unknown1: u16, + pub r#unknown2: u16, + pub r#unknown3: i32, + pub r#unknown4: i32, + pub r#unknown5: i32, + pub r#unknown6: i32, + pub r#unknown7: i32, +} +impl FGSStageUI { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u16()?, + r#unknown1: row.field(1usize + offset)?.into_u16()?, + r#unknown2: row.field(2usize + offset)?.into_u16()?, + r#unknown3: row.field(3usize + offset)?.into_i32()?, + r#unknown4: row.field(4usize + offset)?.into_i32()?, + r#unknown5: row.field(5usize + offset)?.into_i32()?, + r#unknown6: row.field(6usize + offset)?.into_i32()?, + r#unknown7: row.field(7usize + offset)?.into_i32()?, + }) + } +} diff --git a/src/sheet/field_marker.rs b/src/sheet/field_marker.rs index 70f9091b..45817d5c 100644 --- a/src/sheet/field_marker.rs +++ b/src/sheet/field_marker.rs @@ -1,8 +1,8 @@ -use ironworks::excel::Row; -use std::result::Result; -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for FieldMarker { fn name() -> String { "FieldMarker".to_string() diff --git a/src/sheet/fish_parameter.rs b/src/sheet/fish_parameter.rs index 66cf37ec..3ea53a95 100644 --- a/src/sheet/fish_parameter.rs +++ b/src/sheet/fish_parameter.rs @@ -1,8 +1,8 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; -use ironworks::sestring::SeString; use ironworks::excel::Row; -use crate::error::PopulateError; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for FishParameter { fn name() -> String { "FishParameter".to_string() @@ -15,33 +15,37 @@ impl MetadataAdapter for FishParameter { #[derive(Debug)] pub struct FishParameter { pub r#text: SeString, + pub r#unknown1: SeString, + pub r#unknown2: SeString, + pub r#unknown3: SeString, pub r#item: i32, pub r#gathering_item_level: u16, - pub r#unknown3: u8, + pub r#ocean_stars: u8, + pub r#unknown7: u16, pub r#is_hidden: bool, - pub r#unknown5: bool, pub r#fishing_record_type: u8, - pub r#territory_type: i32, + pub r#fishing_spot: u16, pub r#gathering_sub_category: u16, pub r#is_in_log: bool, - pub r#time_restricted: bool, - pub r#weather_restricted: bool, + pub r#achievement_credit: u32, } impl FishParameter { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#text: row.field(0usize + offset)?.into_string()?, - r#item: row.field(1usize + offset)?.into_i32()?, - r#gathering_item_level: row.field(2usize + offset)?.into_u16()?, - r#unknown3: row.field(3usize + offset)?.into_u8()?, - r#is_hidden: row.field(4usize + offset)?.into_bool()?, - r#unknown5: row.field(5usize + offset)?.into_bool()?, - r#fishing_record_type: row.field(6usize + offset)?.into_u8()?, - r#territory_type: row.field(7usize + offset)?.into_i32()?, - r#gathering_sub_category: row.field(8usize + offset)?.into_u16()?, - r#is_in_log: row.field(9usize + offset)?.into_bool()?, - r#time_restricted: row.field(10usize + offset)?.into_bool()?, - r#weather_restricted: row.field(11usize + offset)?.into_bool()?, + r#unknown1: row.field(1usize + offset)?.into_string()?, + r#unknown2: row.field(2usize + offset)?.into_string()?, + r#unknown3: row.field(3usize + offset)?.into_string()?, + r#item: row.field(4usize + offset)?.into_i32()?, + r#gathering_item_level: row.field(5usize + offset)?.into_u16()?, + r#ocean_stars: row.field(6usize + offset)?.into_u8()?, + r#unknown7: row.field(7usize + offset)?.into_u16()?, + r#is_hidden: row.field(8usize + offset)?.into_bool()?, + r#fishing_record_type: row.field(9usize + offset)?.into_u8()?, + r#fishing_spot: row.field(10usize + offset)?.into_u16()?, + r#gathering_sub_category: row.field(11usize + offset)?.into_u16()?, + r#is_in_log: row.field(12usize + offset)?.into_bool()?, + r#achievement_credit: row.field(13usize + offset)?.into_u32()?, }) } } diff --git a/src/sheet/fishing_bait_parameter.rs b/src/sheet/fishing_bait_parameter.rs new file mode 100644 index 00000000..5c4aa3b5 --- /dev/null +++ b/src/sheet/fishing_bait_parameter.rs @@ -0,0 +1,24 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; +impl MetadataAdapter for FishingBaitParameter { + fn name() -> String { + "FishingBaitParameter".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(FishingBaitParameter::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct FishingBaitParameter { + pub r#unknown0: u32, +} +impl FishingBaitParameter { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u32()?, + }) + } +} diff --git a/src/sheet/fishing_note_info.rs b/src/sheet/fishing_note_info.rs new file mode 100644 index 00000000..9fe1f249 --- /dev/null +++ b/src/sheet/fishing_note_info.rs @@ -0,0 +1,36 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; +impl MetadataAdapter for FishingNoteInfo { + fn name() -> String { + "FishingNoteInfo".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(FishingNoteInfo::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct FishingNoteInfo { + pub r#size: u8, + pub r#aquarium_water: u8, + pub r#weather_restriction: u8, + pub r#time_restriction: u8, + pub r#special_conditions: u8, + pub r#is_collectable: u8, + pub r#item: i32, +} +impl FishingNoteInfo { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#size: row.field(0usize + offset)?.into_u8()?, + r#aquarium_water: row.field(1usize + offset)?.into_u8()?, + r#weather_restriction: row.field(2usize + offset)?.into_u8()?, + r#time_restriction: row.field(3usize + offset)?.into_u8()?, + r#special_conditions: row.field(4usize + offset)?.into_u8()?, + r#is_collectable: row.field(5usize + offset)?.into_u8()?, + r#item: row.field(6usize + offset)?.into_i32()?, + }) + } +} diff --git a/src/sheet/fishing_record_type.rs b/src/sheet/fishing_record_type.rs index 1fbcc106..1e43c5f8 100644 --- a/src/sheet/fishing_record_type.rs +++ b/src/sheet/fishing_record_type.rs @@ -1,7 +1,7 @@ use crate::error::PopulateError; -use std::result::Result; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for FishingRecordType { fn name() -> String { "FishingRecordType".to_string() diff --git a/src/sheet/fishing_record_type_transient.rs b/src/sheet/fishing_record_type_transient.rs index d98a5718..0ff7e7e7 100644 --- a/src/sheet/fishing_record_type_transient.rs +++ b/src/sheet/fishing_record_type_transient.rs @@ -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 FishingRecordTypeTransient { fn name() -> String { diff --git a/src/sheet/fishing_spot.rs b/src/sheet/fishing_spot.rs index 109afdae..9daa10c8 100644 --- a/src/sheet/fishing_spot.rs +++ b/src/sheet/fishing_spot.rs @@ -1,10 +1,10 @@ -use std::result::Result; use crate::error::PopulateError; -use crate::utility::read_array; -use std::vec::Vec; use crate::metadata::MetadataAdapter; -use ironworks::sestring::SeString; +use crate::utility::read_array; use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for FishingSpot { fn name() -> String { "FishingSpot".to_string() @@ -19,6 +19,7 @@ pub struct FishingSpot { pub r#gathering_level: u8, pub r#big_fish_on_reach: SeString, pub r#big_fish_on_end: SeString, + pub r#unknown3: SeString, pub r#fishing_spot_category: u8, pub r#rare: bool, pub r#territory_type: u16, @@ -27,8 +28,8 @@ pub struct FishingSpot { pub r#x: i16, pub r#z: i16, pub r#radius: u16, - pub r#unknown11: u8, - pub r#item: Vec, + pub r#unknown12: u8, + pub r#item: Vec, pub r#place_name: u16, pub r#order: u16, } @@ -38,23 +39,24 @@ impl FishingSpot { r#gathering_level: row.field(0usize + offset)?.into_u8()?, r#big_fish_on_reach: row.field(1usize + offset)?.into_string()?, r#big_fish_on_end: row.field(2usize + offset)?.into_string()?, - r#fishing_spot_category: row.field(3usize + offset)?.into_u8()?, - r#rare: row.field(4usize + offset)?.into_bool()?, - r#territory_type: row.field(5usize + offset)?.into_u16()?, - r#place_name_main: row.field(6usize + offset)?.into_u16()?, - r#place_name_sub: row.field(7usize + offset)?.into_u16()?, - r#x: row.field(8usize + offset)?.into_i16()?, - r#z: row.field(9usize + offset)?.into_i16()?, - r#radius: row.field(10usize + offset)?.into_u16()?, - r#unknown11: row.field(11usize + offset)?.into_u8()?, + r#unknown3: row.field(3usize + offset)?.into_string()?, + r#fishing_spot_category: row.field(4usize + offset)?.into_u8()?, + r#rare: row.field(5usize + offset)?.into_bool()?, + r#territory_type: row.field(6usize + offset)?.into_u16()?, + r#place_name_main: row.field(7usize + offset)?.into_u16()?, + r#place_name_sub: row.field(8usize + offset)?.into_u16()?, + r#x: row.field(9usize + offset)?.into_i16()?, + r#z: row.field(10usize + offset)?.into_i16()?, + r#radius: row.field(11usize + offset)?.into_u16()?, + r#unknown12: row.field(12usize + offset)?.into_u8()?, r#item: read_array( offset, 10usize, 1usize, - |offset| { Result::Ok(row.field(12usize + offset)?.into_i32()?) }, + |offset| { Result::Ok(row.field(13usize + offset)?.into_u32()?) }, )?, - r#place_name: row.field(22usize + offset)?.into_u16()?, - r#order: row.field(23usize + offset)?.into_u16()?, + r#place_name: row.field(23usize + offset)?.into_u16()?, + r#order: row.field(24usize + offset)?.into_u16()?, }) } } diff --git a/src/sheet/fitting_shop.rs b/src/sheet/fitting_shop.rs index 555601a7..8ab5eaea 100644 --- a/src/sheet/fitting_shop.rs +++ b/src/sheet/fitting_shop.rs @@ -1,7 +1,7 @@ -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; -use std::result::Result; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for FittingShop { fn name() -> String { "FittingShop".to_string() @@ -12,9 +12,75 @@ impl MetadataAdapter for FittingShop { } } #[derive(Debug)] -pub struct FittingShop {} +pub struct FittingShop { + pub r#unknown0: u16, + pub r#unknown1: u16, + pub r#unknown2: u16, + pub r#unknown3: u16, + pub r#unknown4: u16, + pub r#unknown5: u16, + pub r#unknown6: u16, + pub r#unknown7: u16, + pub r#unknown8: u16, + pub r#unknown9: u16, + pub r#unknown10: u16, + pub r#unknown11: u16, + pub r#unknown12: u16, + pub r#unknown13: u16, + pub r#unknown14: u16, + pub r#unknown15: u16, + pub r#unknown16: u16, + pub r#unknown17: u16, + pub r#unknown18: u16, + pub r#unknown19: u16, + pub r#unknown20: u16, + pub r#unknown21: u16, + pub r#unknown22: u16, + pub r#unknown23: u16, + pub r#unknown24: u16, + pub r#unknown25: u16, + pub r#unknown26: u16, + pub r#unknown27: u16, + pub r#unknown28: u16, + pub r#unknown29: u16, + pub r#unknown30: u16, + pub r#unknown31: u16, +} impl FittingShop { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u16()?, + r#unknown1: row.field(1usize + offset)?.into_u16()?, + r#unknown2: row.field(2usize + offset)?.into_u16()?, + r#unknown3: row.field(3usize + offset)?.into_u16()?, + r#unknown4: row.field(4usize + offset)?.into_u16()?, + r#unknown5: row.field(5usize + 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_u16()?, + r#unknown10: row.field(10usize + offset)?.into_u16()?, + r#unknown11: row.field(11usize + offset)?.into_u16()?, + r#unknown12: row.field(12usize + offset)?.into_u16()?, + r#unknown13: row.field(13usize + offset)?.into_u16()?, + r#unknown14: row.field(14usize + offset)?.into_u16()?, + r#unknown15: row.field(15usize + offset)?.into_u16()?, + r#unknown16: row.field(16usize + offset)?.into_u16()?, + r#unknown17: row.field(17usize + offset)?.into_u16()?, + r#unknown18: row.field(18usize + offset)?.into_u16()?, + r#unknown19: row.field(19usize + offset)?.into_u16()?, + r#unknown20: row.field(20usize + offset)?.into_u16()?, + r#unknown21: row.field(21usize + offset)?.into_u16()?, + r#unknown22: row.field(22usize + offset)?.into_u16()?, + r#unknown23: row.field(23usize + offset)?.into_u16()?, + r#unknown24: row.field(24usize + offset)?.into_u16()?, + r#unknown25: row.field(25usize + offset)?.into_u16()?, + r#unknown26: row.field(26usize + offset)?.into_u16()?, + r#unknown27: row.field(27usize + offset)?.into_u16()?, + r#unknown28: row.field(28usize + offset)?.into_u16()?, + r#unknown29: row.field(29usize + offset)?.into_u16()?, + r#unknown30: row.field(30usize + offset)?.into_u16()?, + r#unknown31: row.field(31usize + offset)?.into_u16()?, + }) } } diff --git a/src/sheet/fitting_shop_category.rs b/src/sheet/fitting_shop_category.rs index e8754e8c..5876143c 100644 --- a/src/sheet/fitting_shop_category.rs +++ b/src/sheet/fitting_shop_category.rs @@ -1,7 +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 std::result::Result; impl MetadataAdapter for FittingShopCategory { fn name() -> String { "FittingShopCategory".to_string() @@ -12,9 +13,15 @@ impl MetadataAdapter for FittingShopCategory { } } #[derive(Debug)] -pub struct FittingShopCategory {} +pub struct FittingShopCategory { + pub r#unknown0: u8, + pub r#unknown1: SeString, +} impl FittingShopCategory { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u8()?, + r#unknown1: row.field(1usize + offset)?.into_string()?, + }) } } diff --git a/src/sheet/fitting_shop_category_item.rs b/src/sheet/fitting_shop_category_item.rs index b0660606..fefa7010 100644 --- a/src/sheet/fitting_shop_category_item.rs +++ b/src/sheet/fitting_shop_category_item.rs @@ -1,7 +1,7 @@ -use std::result::Result; -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for FittingShopCategoryItem { fn name() -> String { "FittingShopCategoryItem".to_string() @@ -12,9 +12,17 @@ impl MetadataAdapter for FittingShopCategoryItem { } } #[derive(Debug)] -pub struct FittingShopCategoryItem {} +pub struct FittingShopCategoryItem { + pub r#unknown0: i32, + pub r#unknown1: u8, + pub r#unknown2: u8, +} impl FittingShopCategoryItem { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_i32()?, + r#unknown1: row.field(1usize + offset)?.into_u8()?, + r#unknown2: row.field(2usize + offset)?.into_u8()?, + }) } } diff --git a/src/sheet/fitting_shop_item_set.rs b/src/sheet/fitting_shop_item_set.rs index 13e5498a..c4510fdd 100644 --- a/src/sheet/fitting_shop_item_set.rs +++ b/src/sheet/fitting_shop_item_set.rs @@ -1,7 +1,8 @@ -use std::result::Result; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; -use crate::error::PopulateError; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for FittingShopItemSet { fn name() -> String { "FittingShopItemSet".to_string() @@ -12,9 +13,25 @@ impl MetadataAdapter for FittingShopItemSet { } } #[derive(Debug)] -pub struct FittingShopItemSet {} +pub struct FittingShopItemSet { + pub r#unknown0: i32, + pub r#unknown1: i32, + pub r#unknown2: i32, + pub r#unknown3: i32, + pub r#unknown4: i32, + pub r#unknown5: i32, + pub r#unknown6: SeString, +} impl FittingShopItemSet { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_i32()?, + r#unknown1: row.field(1usize + offset)?.into_i32()?, + r#unknown2: row.field(2usize + offset)?.into_i32()?, + r#unknown3: row.field(3usize + offset)?.into_i32()?, + r#unknown4: row.field(4usize + offset)?.into_i32()?, + r#unknown5: row.field(5usize + offset)?.into_i32()?, + r#unknown6: row.field(6usize + offset)?.into_string()?, + }) } } diff --git a/src/sheet/frontline03.rs b/src/sheet/frontline03.rs index f1fbe7c4..7e37af0f 100644 --- a/src/sheet/frontline03.rs +++ b/src/sheet/frontline03.rs @@ -1,9 +1,9 @@ use crate::error::PopulateError; -use std::vec::Vec; use crate::metadata::MetadataAdapter; -use std::result::Result; use crate::utility::read_array; use ironworks::excel::Row; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for Frontline03 { fn name() -> String { "Frontline03".to_string() diff --git a/src/sheet/frontline04.rs b/src/sheet/frontline04.rs deleted file mode 100644 index 5dd90dc7..00000000 --- a/src/sheet/frontline04.rs +++ /dev/null @@ -1,28 +0,0 @@ -use crate::error::PopulateError; -use ironworks::excel::Row; -use std::result::Result; -use crate::metadata::MetadataAdapter; -impl MetadataAdapter for Frontline04 { - fn name() -> String { - "Frontline04".to_string() - } - fn populate(row: &Row) -> Result { - let offset = 0; - Result::Ok(Frontline04::populate(row, offset)?) - } -} -#[derive(Debug)] -pub struct Frontline04 { - pub r#level1: i32, - pub r#level2: i32, - pub r#level3: i32, -} -impl Frontline04 { - pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self { - r#level1: row.field(0usize + offset)?.into_i32()?, - r#level2: row.field(1usize + offset)?.into_i32()?, - r#level3: row.field(2usize + offset)?.into_i32()?, - }) - } -} diff --git a/src/sheet/furniture_catalog_category.rs b/src/sheet/furniture_catalog_category.rs index af6a4eca..4da42745 100644 --- a/src/sheet/furniture_catalog_category.rs +++ b/src/sheet/furniture_catalog_category.rs @@ -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 ironworks::excel::Row; impl MetadataAdapter for FurnitureCatalogCategory { fn name() -> String { "FurnitureCatalogCategory".to_string() @@ -15,11 +15,15 @@ impl MetadataAdapter for FurnitureCatalogCategory { #[derive(Debug)] pub struct FurnitureCatalogCategory { pub r#category: SeString, + pub r#unknown1: u16, + pub r#unknown2: u8, } impl FurnitureCatalogCategory { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#category: row.field(0usize + offset)?.into_string()?, + r#unknown1: row.field(1usize + offset)?.into_u16()?, + r#unknown2: row.field(2usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/furniture_catalog_item_list.rs b/src/sheet/furniture_catalog_item_list.rs index 78e5a934..54a5da25 100644 --- a/src/sheet/furniture_catalog_item_list.rs +++ b/src/sheet/furniture_catalog_item_list.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use std::result::Result; -use crate::error::PopulateError; impl MetadataAdapter for FurnitureCatalogItemList { fn name() -> String { "FurnitureCatalogItemList".to_string() diff --git a/src/sheet/g_fate_climbing2.rs b/src/sheet/g_fate_climbing2.rs index 98bdf6e3..bd623f30 100644 --- a/src/sheet/g_fate_climbing2.rs +++ b/src/sheet/g_fate_climbing2.rs @@ -1,7 +1,7 @@ use crate::error::PopulateError; -use std::result::Result; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for GFateClimbing2 { fn name() -> String { "GFateClimbing2".to_string() diff --git a/src/sheet/g_fate_climbing2_content.rs b/src/sheet/g_fate_climbing2_content.rs index 8d55662d..475cd98f 100644 --- a/src/sheet/g_fate_climbing2_content.rs +++ b/src/sheet/g_fate_climbing2_content.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; use crate::error::PopulateError; -use std::result::Result; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for GFateClimbing2Content { fn name() -> String { "GFateClimbing2Content".to_string() diff --git a/src/sheet/g_fate_climbing2_totem_type.rs b/src/sheet/g_fate_climbing2_totem_type.rs index 35c8e6bd..3db25e81 100644 --- a/src/sheet/g_fate_climbing2_totem_type.rs +++ b/src/sheet/g_fate_climbing2_totem_type.rs @@ -1,7 +1,7 @@ -use std::result::Result; -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for GFateClimbing2TotemType { fn name() -> String { "GFateClimbing2TotemType".to_string() diff --git a/src/sheet/g_fate_ride_shooting.rs b/src/sheet/g_fate_ride_shooting.rs index 880adf4c..fd6dcfea 100644 --- a/src/sheet/g_fate_ride_shooting.rs +++ b/src/sheet/g_fate_ride_shooting.rs @@ -1,7 +1,7 @@ -use std::result::Result; -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for GFateRideShooting { fn name() -> String { "GFateRideShooting".to_string() diff --git a/src/sheet/materia_tomestone_rate.rs b/src/sheet/g_fate_type.rs similarity index 56% rename from src/sheet/materia_tomestone_rate.rs rename to src/sheet/g_fate_type.rs index 26d16039..bc673b01 100644 --- a/src/sheet/materia_tomestone_rate.rs +++ b/src/sheet/g_fate_type.rs @@ -1,24 +1,24 @@ -use std::result::Result; -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -impl MetadataAdapter for MateriaTomestoneRate { +use ironworks::excel::Row; +use std::result::Result; +impl MetadataAdapter for GFateType { fn name() -> String { - "MateriaTomestoneRate".to_string() + "GFateType".to_string() } fn populate(row: &Row) -> Result { let offset = 0; - Result::Ok(MateriaTomestoneRate::populate(row, offset)?) + Result::Ok(GFateType::populate(row, offset)?) } } #[derive(Debug)] -pub struct MateriaTomestoneRate { - pub r#rate: u32, +pub struct GFateType { + pub r#unknown0: u16, } -impl MateriaTomestoneRate { +impl GFateType { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { - r#rate: row.field(0usize + offset)?.into_u32()?, + r#unknown0: row.field(0usize + offset)?.into_u16()?, }) } } diff --git a/src/sheet/game_reward_obtain_type.rs b/src/sheet/game_reward_obtain_type.rs index 4a559633..efae7e46 100644 --- a/src/sheet/game_reward_obtain_type.rs +++ b/src/sheet/game_reward_obtain_type.rs @@ -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 GameRewardObtainType { fn name() -> String { @@ -12,9 +12,15 @@ impl MetadataAdapter for GameRewardObtainType { } } #[derive(Debug)] -pub struct GameRewardObtainType {} +pub struct GameRewardObtainType { + pub r#unknown0: u32, + pub r#unknown1: u32, +} impl GameRewardObtainType { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u32()?, + r#unknown1: row.field(1usize + offset)?.into_u32()?, + }) } } diff --git a/src/sheet/gardening_seed.rs b/src/sheet/gardening_seed.rs index 1cf67d90..d6a88783 100644 --- a/src/sheet/gardening_seed.rs +++ b/src/sheet/gardening_seed.rs @@ -1,7 +1,7 @@ -use std::result::Result; -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 GardeningSeed { fn name() -> String { "GardeningSeed".to_string() @@ -17,6 +17,8 @@ pub struct GardeningSeed { pub r#model_id: u16, pub r#icon: u32, pub r#se: bool, + pub r#unknown4: bool, + pub r#unknown5: u8, } impl GardeningSeed { pub fn populate(row: &Row, offset: usize) -> Result { @@ -25,6 +27,8 @@ impl GardeningSeed { r#model_id: row.field(1usize + offset)?.into_u16()?, r#icon: row.field(2usize + offset)?.into_u32()?, r#se: row.field(3usize + offset)?.into_bool()?, + r#unknown4: row.field(4usize + offset)?.into_bool()?, + r#unknown5: row.field(5usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/gatherer_crafter_tool.rs b/src/sheet/gatherer_crafter_tool.rs new file mode 100644 index 00000000..b9bf08dc --- /dev/null +++ b/src/sheet/gatherer_crafter_tool.rs @@ -0,0 +1,26 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; +impl MetadataAdapter for GathererCrafterTool { + fn name() -> String { + "GathererCrafterTool".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(GathererCrafterTool::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct GathererCrafterTool { + pub r#unknown0: u8, + pub r#unknown1: u8, +} +impl GathererCrafterTool { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u8()?, + r#unknown1: row.field(1usize + offset)?.into_u8()?, + }) + } +} diff --git a/src/sheet/gatherer_reduction_reward.rs b/src/sheet/gatherer_reduction_reward.rs new file mode 100644 index 00000000..1a447166 --- /dev/null +++ b/src/sheet/gatherer_reduction_reward.rs @@ -0,0 +1,26 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; +impl MetadataAdapter for GathererReductionReward { + fn name() -> String { + "GathererReductionReward".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(GathererReductionReward::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct GathererReductionReward { + pub r#unknown0: u16, + pub r#unknown1: bool, +} +impl GathererReductionReward { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u16()?, + r#unknown1: row.field(1usize + offset)?.into_bool()?, + }) + } +} diff --git a/src/sheet/gathering_condition.rs b/src/sheet/gathering_condition.rs index 7c5b1b6b..adb42397 100644 --- a/src/sheet/gathering_condition.rs +++ b/src/sheet/gathering_condition.rs @@ -1,6 +1,6 @@ -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use ironworks::sestring::SeString; use std::result::Result; impl MetadataAdapter for GatheringCondition { diff --git a/src/sheet/gathering_exp.rs b/src/sheet/gathering_exp.rs index ec26dead..563a99fc 100644 --- a/src/sheet/gathering_exp.rs +++ b/src/sheet/gathering_exp.rs @@ -1,7 +1,7 @@ use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for GatheringExp { fn name() -> String { "GatheringExp".to_string() diff --git a/src/sheet/gathering_item.rs b/src/sheet/gathering_item.rs index 7f11411b..4cea8dea 100644 --- a/src/sheet/gathering_item.rs +++ b/src/sheet/gathering_item.rs @@ -1,7 +1,7 @@ use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for GatheringItem { fn name() -> String { "GatheringItem".to_string() @@ -16,9 +16,13 @@ pub struct GatheringItem { pub r#item: i32, pub r#gathering_item_level: u16, pub r#unknown2: bool, - pub r#quest: u16, - pub r#unknown4: u32, - pub r#is_hidden: bool, + pub r#quest: bool, + pub r#unknown4: u16, + pub r#is_hidden: u32, + pub r#unknown6: bool, + pub r#unknown7: u32, + pub r#unknown8: u8, + pub r#unknown9: u16, } impl GatheringItem { pub fn populate(row: &Row, offset: usize) -> Result { @@ -26,9 +30,13 @@ impl GatheringItem { r#item: row.field(0usize + offset)?.into_i32()?, r#gathering_item_level: row.field(1usize + offset)?.into_u16()?, r#unknown2: row.field(2usize + offset)?.into_bool()?, - r#quest: row.field(3usize + offset)?.into_u16()?, - r#unknown4: row.field(4usize + offset)?.into_u32()?, - r#is_hidden: row.field(5usize + offset)?.into_bool()?, + r#quest: row.field(3usize + offset)?.into_bool()?, + r#unknown4: row.field(4usize + offset)?.into_u16()?, + r#is_hidden: row.field(5usize + offset)?.into_u32()?, + r#unknown6: row.field(6usize + offset)?.into_bool()?, + r#unknown7: row.field(7usize + offset)?.into_u32()?, + r#unknown8: row.field(8usize + offset)?.into_u8()?, + r#unknown9: row.field(9usize + offset)?.into_u16()?, }) } } diff --git a/src/sheet/gathering_item_level_convert_table.rs b/src/sheet/gathering_item_level_convert_table.rs index 9d3999d6..d755293c 100644 --- a/src/sheet/gathering_item_level_convert_table.rs +++ b/src/sheet/gathering_item_level_convert_table.rs @@ -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 GatheringItemLevelConvertTable { fn name() -> String { "GatheringItemLevelConvertTable".to_string() diff --git a/src/sheet/gathering_item_point.rs b/src/sheet/gathering_item_point.rs index a3491889..3a2d578c 100644 --- a/src/sheet/gathering_item_point.rs +++ b/src/sheet/gathering_item_point.rs @@ -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 GatheringItemPoint { fn name() -> String { "GatheringItemPoint".to_string() diff --git a/src/sheet/gathering_leve.rs b/src/sheet/gathering_leve.rs index fbf2fc98..0ab7db57 100644 --- a/src/sheet/gathering_leve.rs +++ b/src/sheet/gathering_leve.rs @@ -1,9 +1,9 @@ -use ironworks::excel::Row; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::vec::Vec; use crate::utility::read_array; +use ironworks::excel::Row; use std::result::Result; -use crate::error::PopulateError; +use std::vec::Vec; impl MetadataAdapter for GatheringLeve { fn name() -> String { "GatheringLeve".to_string() diff --git a/src/sheet/gathering_leve_route.rs b/src/sheet/gathering_leve_route.rs index 60a5fdb9..e29752b6 100644 --- a/src/sheet/gathering_leve_route.rs +++ b/src/sheet/gathering_leve_route.rs @@ -1,9 +1,9 @@ use crate::error::PopulateError; -use crate::utility::read_array; use crate::metadata::MetadataAdapter; +use crate::utility::read_array; +use ironworks::excel::Row; use std::result::Result; use std::vec::Vec; -use ironworks::excel::Row; impl MetadataAdapter for GatheringLeveRoute { fn name() -> String { "GatheringLeveRoute".to_string() diff --git a/src/sheet/gathering_leve_rule.rs b/src/sheet/gathering_leve_rule.rs index 4bc94f29..e05c8f9b 100644 --- a/src/sheet/gathering_leve_rule.rs +++ b/src/sheet/gathering_leve_rule.rs @@ -1,8 +1,8 @@ -use std::result::Result; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use ironworks::sestring::SeString; use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for GatheringLeveRule { fn name() -> String { "GatheringLeveRule".to_string() diff --git a/src/sheet/gathering_notebook_list.rs b/src/sheet/gathering_notebook_list.rs index e68b8c8c..6e8298d1 100644 --- a/src/sheet/gathering_notebook_list.rs +++ b/src/sheet/gathering_notebook_list.rs @@ -1,9 +1,9 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use crate::utility::read_array; +use ironworks::excel::Row; use std::result::Result; -use crate::metadata::MetadataAdapter; use std::vec::Vec; -use crate::error::PopulateError; -use ironworks::excel::Row; impl MetadataAdapter for GatheringNotebookList { fn name() -> String { "GatheringNotebookList".to_string() diff --git a/src/sheet/gathering_point.rs b/src/sheet/gathering_point.rs index 3da7c29f..3b6951dd 100644 --- a/src/sheet/gathering_point.rs +++ b/src/sheet/gathering_point.rs @@ -1,9 +1,9 @@ -use crate::utility::read_array; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::vec::Vec; -use std::result::Result; +use crate::utility::read_array; use ironworks::excel::Row; -use crate::error::PopulateError; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for GatheringPoint { fn name() -> String { "GatheringPoint".to_string() @@ -17,29 +17,31 @@ impl MetadataAdapter for GatheringPoint { pub struct GatheringPoint { pub r#type: u8, pub r#unknown1: u8, - pub r#gathering_point_base: i32, - pub r#count: u8, - pub r#gathering_point_bonus: Vec, + pub r#gathering_point_base: bool, + pub r#count: i32, + pub r#gathering_point_bonus: Vec, pub r#territory_type: u16, pub r#place_name: u16, pub r#gathering_sub_category: u16, + pub r#unknown9: u16, } impl GatheringPoint { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#type: row.field(0usize + offset)?.into_u8()?, r#unknown1: row.field(1usize + offset)?.into_u8()?, - r#gathering_point_base: row.field(2usize + offset)?.into_i32()?, - r#count: row.field(3usize + offset)?.into_u8()?, + r#gathering_point_base: row.field(2usize + offset)?.into_bool()?, + r#count: row.field(3usize + offset)?.into_i32()?, r#gathering_point_bonus: read_array( offset, 2usize, 1usize, - |offset| { Result::Ok(row.field(4usize + offset)?.into_u16()?) }, + |offset| { Result::Ok(row.field(4usize + offset)?.into_u8()?) }, )?, r#territory_type: row.field(6usize + offset)?.into_u16()?, r#place_name: row.field(7usize + offset)?.into_u16()?, r#gathering_sub_category: row.field(8usize + offset)?.into_u16()?, + r#unknown9: row.field(9usize + offset)?.into_u16()?, }) } } diff --git a/src/sheet/gathering_point_base.rs b/src/sheet/gathering_point_base.rs index 4e83355c..9a883845 100644 --- a/src/sheet/gathering_point_base.rs +++ b/src/sheet/gathering_point_base.rs @@ -1,9 +1,9 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use ironworks::excel::Row; use crate::utility::read_array; +use ironworks::excel::Row; use std::result::Result; use std::vec::Vec; -use crate::error::PopulateError; impl MetadataAdapter for GatheringPointBase { fn name() -> String { "GatheringPointBase".to_string() diff --git a/src/sheet/gathering_point_bonus.rs b/src/sheet/gathering_point_bonus.rs index b29be23c..330a3933 100644 --- a/src/sheet/gathering_point_bonus.rs +++ b/src/sheet/gathering_point_bonus.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; -use std::result::Result; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for GatheringPointBonus { fn name() -> String { "GatheringPointBonus".to_string() @@ -18,6 +18,9 @@ pub struct GatheringPointBonus { pub r#unknown2: u16, pub r#bonus_type: u8, pub r#bonus_value: u16, + pub r#unknown5: u16, + pub r#unknown6: bool, + pub r#unknown7: u32, } impl GatheringPointBonus { pub fn populate(row: &Row, offset: usize) -> Result { @@ -27,6 +30,9 @@ impl GatheringPointBonus { r#unknown2: row.field(2usize + offset)?.into_u16()?, r#bonus_type: row.field(3usize + offset)?.into_u8()?, r#bonus_value: row.field(4usize + offset)?.into_u16()?, + r#unknown5: row.field(5usize + offset)?.into_u16()?, + r#unknown6: row.field(6usize + offset)?.into_bool()?, + r#unknown7: row.field(7usize + offset)?.into_u32()?, }) } } diff --git a/src/sheet/gathering_point_bonus_type.rs b/src/sheet/gathering_point_bonus_type.rs index 93846137..9c4e382c 100644 --- a/src/sheet/gathering_point_bonus_type.rs +++ b/src/sheet/gathering_point_bonus_type.rs @@ -1,8 +1,8 @@ use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; use ironworks::excel::Row; use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for GatheringPointBonusType { fn name() -> String { "GatheringPointBonusType".to_string() diff --git a/src/sheet/gathering_point_name.rs b/src/sheet/gathering_point_name.rs index 14de3585..6c0218b6 100644 --- a/src/sheet/gathering_point_name.rs +++ b/src/sheet/gathering_point_name.rs @@ -1,8 +1,8 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; -use std::result::Result; use ironworks::sestring::SeString; -use crate::error::PopulateError; +use std::result::Result; impl MetadataAdapter for GatheringPointName { fn name() -> String { "GatheringPointName".to_string() diff --git a/src/sheet/gathering_point_transient.rs b/src/sheet/gathering_point_transient.rs index 6bc88558..1bdb70ab 100644 --- a/src/sheet/gathering_point_transient.rs +++ b/src/sheet/gathering_point_transient.rs @@ -1,7 +1,7 @@ use crate::error::PopulateError; -use std::result::Result; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for GatheringPointTransient { fn name() -> String { "GatheringPointTransient".to_string() diff --git a/src/sheet/gathering_rare_pop_time_table.rs b/src/sheet/gathering_rare_pop_time_table.rs index 58377e37..a46c64d0 100644 --- a/src/sheet/gathering_rare_pop_time_table.rs +++ b/src/sheet/gathering_rare_pop_time_table.rs @@ -1,9 +1,9 @@ -use std::vec::Vec; -use crate::utility::read_array; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use crate::utility::read_array; use ironworks::excel::Row; use std::result::Result; -use crate::metadata::MetadataAdapter; +use std::vec::Vec; impl MetadataAdapter for GatheringRarePopTimeTable { fn name() -> String { "GatheringRarePopTimeTable".to_string() diff --git a/src/sheet/gathering_sub_category.rs b/src/sheet/gathering_sub_category.rs index fe988245..96429abf 100644 --- a/src/sheet/gathering_sub_category.rs +++ b/src/sheet/gathering_sub_category.rs @@ -1,8 +1,8 @@ -use ironworks::sestring::SeString; +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 GatheringSubCategory { fn name() -> String { "GatheringSubCategory".to_string() @@ -20,6 +20,7 @@ pub struct GatheringSubCategory { pub r#division: u16, pub r#item: i32, pub r#folklore_book: SeString, + pub r#unknown6: u8, } impl GatheringSubCategory { pub fn populate(row: &Row, offset: usize) -> Result { @@ -30,6 +31,7 @@ impl GatheringSubCategory { r#division: row.field(3usize + offset)?.into_u16()?, r#item: row.field(4usize + offset)?.into_i32()?, r#folklore_book: row.field(5usize + offset)?.into_string()?, + r#unknown6: row.field(6usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/gathering_type.rs b/src/sheet/gathering_type.rs index cfc98b42..951ba7b3 100644 --- a/src/sheet/gathering_type.rs +++ b/src/sheet/gathering_type.rs @@ -1,8 +1,8 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; use ironworks::excel::Row; -use crate::error::PopulateError; use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for GatheringType { fn name() -> String { "GatheringType".to_string() diff --git a/src/sheet/gc_army_capture_tactics.rs b/src/sheet/gc_army_capture_tactics.rs index 122f951c..4178f7ef 100644 --- a/src/sheet/gc_army_capture_tactics.rs +++ b/src/sheet/gc_army_capture_tactics.rs @@ -1,6 +1,6 @@ -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use std::result::Result; impl MetadataAdapter for GcArmyCaptureTactics { fn name() -> String { diff --git a/src/sheet/gc_army_equip_preset.rs b/src/sheet/gc_army_equip_preset.rs index a16e63e6..a3d1e22f 100644 --- a/src/sheet/gc_army_equip_preset.rs +++ b/src/sheet/gc_army_equip_preset.rs @@ -1,7 +1,7 @@ use crate::error::PopulateError; -use std::result::Result; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for GcArmyEquipPreset { fn name() -> String { "GcArmyEquipPreset".to_string() diff --git a/src/sheet/gc_army_expedition.rs b/src/sheet/gc_army_expedition.rs index 965cbef0..a30bda10 100644 --- a/src/sheet/gc_army_expedition.rs +++ b/src/sheet/gc_army_expedition.rs @@ -1,10 +1,10 @@ -use crate::utility::read_array; -use crate::metadata::MetadataAdapter; -use std::vec::Vec; -use std::result::Result; 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 std::vec::Vec; impl MetadataAdapter for GcArmyExpedition { fn name() -> String { "GcArmyExpedition".to_string() diff --git a/src/sheet/gc_army_expedition_type.rs b/src/sheet/gc_army_expedition_type.rs index 62c19fcf..9867a3bf 100644 --- a/src/sheet/gc_army_expedition_type.rs +++ b/src/sheet/gc_army_expedition_type.rs @@ -1,8 +1,8 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; -use ironworks::sestring::SeString; use ironworks::excel::Row; -use crate::error::PopulateError; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for GcArmyExpeditionType { fn name() -> String { "GcArmyExpeditionType".to_string() diff --git a/src/sheet/gc_army_member_grow.rs b/src/sheet/gc_army_member_grow.rs index 8c493461..d8ff4bca 100644 --- a/src/sheet/gc_army_member_grow.rs +++ b/src/sheet/gc_army_member_grow.rs @@ -1,9 +1,9 @@ -use ironworks::excel::Row; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::vec::Vec; -use std::result::Result; use crate::utility::read_array; -use crate::error::PopulateError; +use ironworks::excel::Row; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for GcArmyMemberGrow { fn name() -> String { "GcArmyMemberGrow".to_string() @@ -24,6 +24,7 @@ pub struct GcArmyMemberGrow { pub r#mental: Vec, pub r#unknown184: u8, pub r#tactical: Vec, + pub r#unknown245: u8, } impl GcArmyMemberGrow { pub fn populate(row: &Row, offset: usize) -> Result { @@ -57,6 +58,7 @@ impl GcArmyMemberGrow { 1usize, |offset| { Result::Ok(row.field(185usize + offset)?.into_u8()?) }, )?, + r#unknown245: row.field(245usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/gc_army_training.rs b/src/sheet/gc_army_training.rs index 4b62cc54..60610eb2 100644 --- a/src/sheet/gc_army_training.rs +++ b/src/sheet/gc_army_training.rs @@ -1,8 +1,8 @@ -use ironworks::excel::Row; -use std::result::Result; -use ironworks::sestring::SeString; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for GcArmyTraining { fn name() -> String { "GcArmyTraining".to_string() diff --git a/src/sheet/gc_rank_gridania_female_text.rs b/src/sheet/gc_rank_gridania_female_text.rs index 0c15dd68..92e90504 100644 --- a/src/sheet/gc_rank_gridania_female_text.rs +++ b/src/sheet/gc_rank_gridania_female_text.rs @@ -1,8 +1,8 @@ -use std::result::Result; -use ironworks::excel::Row; -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for GCRankGridaniaFemaleText { fn name() -> String { "GCRankGridaniaFemaleText".to_string() @@ -23,6 +23,7 @@ pub struct GCRankGridaniaFemaleText { pub r#pronoun: i8, pub r#article: i8, pub r#name_rank: SeString, + pub r#unknown9: SeString, } impl GCRankGridaniaFemaleText { pub fn populate(row: &Row, offset: usize) -> Result { @@ -36,6 +37,7 @@ impl GCRankGridaniaFemaleText { r#pronoun: row.field(6usize + offset)?.into_i8()?, r#article: row.field(7usize + offset)?.into_i8()?, r#name_rank: row.field(8usize + offset)?.into_string()?, + r#unknown9: row.field(9usize + offset)?.into_string()?, }) } } diff --git a/src/sheet/gc_rank_gridania_male_text.rs b/src/sheet/gc_rank_gridania_male_text.rs index f0666abc..18cdf2d3 100644 --- a/src/sheet/gc_rank_gridania_male_text.rs +++ b/src/sheet/gc_rank_gridania_male_text.rs @@ -1,7 +1,7 @@ use crate::error::PopulateError; -use ironworks::sestring::SeString; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use ironworks::sestring::SeString; use std::result::Result; impl MetadataAdapter for GCRankGridaniaMaleText { fn name() -> String { @@ -23,6 +23,7 @@ pub struct GCRankGridaniaMaleText { pub r#pronoun: i8, pub r#article: i8, pub r#name_rank: SeString, + pub r#unknown9: SeString, } impl GCRankGridaniaMaleText { pub fn populate(row: &Row, offset: usize) -> Result { @@ -36,6 +37,7 @@ impl GCRankGridaniaMaleText { r#pronoun: row.field(6usize + offset)?.into_i8()?, r#article: row.field(7usize + offset)?.into_i8()?, r#name_rank: row.field(8usize + offset)?.into_string()?, + r#unknown9: row.field(9usize + offset)?.into_string()?, }) } } diff --git a/src/sheet/gc_rank_limsa_female_text.rs b/src/sheet/gc_rank_limsa_female_text.rs index 858e6f4b..c0a994e9 100644 --- a/src/sheet/gc_rank_limsa_female_text.rs +++ b/src/sheet/gc_rank_limsa_female_text.rs @@ -1,8 +1,8 @@ -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use ironworks::sestring::SeString; use std::result::Result; -use ironworks::excel::Row; impl MetadataAdapter for GCRankLimsaFemaleText { fn name() -> String { "GCRankLimsaFemaleText".to_string() @@ -23,6 +23,7 @@ pub struct GCRankLimsaFemaleText { pub r#pronoun: i8, pub r#article: i8, pub r#name_rank: SeString, + pub r#unknown9: SeString, } impl GCRankLimsaFemaleText { pub fn populate(row: &Row, offset: usize) -> Result { @@ -36,6 +37,7 @@ impl GCRankLimsaFemaleText { r#pronoun: row.field(6usize + offset)?.into_i8()?, r#article: row.field(7usize + offset)?.into_i8()?, r#name_rank: row.field(8usize + offset)?.into_string()?, + r#unknown9: row.field(9usize + offset)?.into_string()?, }) } } diff --git a/src/sheet/gc_rank_limsa_male_text.rs b/src/sheet/gc_rank_limsa_male_text.rs index 4df9c7b0..84ae7163 100644 --- a/src/sheet/gc_rank_limsa_male_text.rs +++ b/src/sheet/gc_rank_limsa_male_text.rs @@ -1,7 +1,7 @@ -use ironworks::sestring::SeString; -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; use std::result::Result; impl MetadataAdapter for GCRankLimsaMaleText { fn name() -> String { @@ -23,6 +23,7 @@ pub struct GCRankLimsaMaleText { pub r#pronoun: i8, pub r#article: i8, pub r#name_rank: SeString, + pub r#unknown9: SeString, } impl GCRankLimsaMaleText { pub fn populate(row: &Row, offset: usize) -> Result { @@ -36,6 +37,7 @@ impl GCRankLimsaMaleText { r#pronoun: row.field(6usize + offset)?.into_i8()?, r#article: row.field(7usize + offset)?.into_i8()?, r#name_rank: row.field(8usize + offset)?.into_string()?, + r#unknown9: row.field(9usize + offset)?.into_string()?, }) } } diff --git a/src/sheet/gc_rank_uldah_female_text.rs b/src/sheet/gc_rank_uldah_female_text.rs index 5dea8fe2..1f654202 100644 --- a/src/sheet/gc_rank_uldah_female_text.rs +++ b/src/sheet/gc_rank_uldah_female_text.rs @@ -1,8 +1,8 @@ -use ironworks::sestring::SeString; 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 GCRankUldahFemaleText { fn name() -> String { "GCRankUldahFemaleText".to_string() @@ -23,6 +23,7 @@ pub struct GCRankUldahFemaleText { pub r#pronoun: i8, pub r#article: i8, pub r#name_rank: SeString, + pub r#unknown9: SeString, } impl GCRankUldahFemaleText { pub fn populate(row: &Row, offset: usize) -> Result { @@ -36,6 +37,7 @@ impl GCRankUldahFemaleText { r#pronoun: row.field(6usize + offset)?.into_i8()?, r#article: row.field(7usize + offset)?.into_i8()?, r#name_rank: row.field(8usize + offset)?.into_string()?, + r#unknown9: row.field(9usize + offset)?.into_string()?, }) } } diff --git a/src/sheet/gc_rank_uldah_male_text.rs b/src/sheet/gc_rank_uldah_male_text.rs index 25dd2e95..d7e04077 100644 --- a/src/sheet/gc_rank_uldah_male_text.rs +++ b/src/sheet/gc_rank_uldah_male_text.rs @@ -1,8 +1,8 @@ -use std::result::Result; -use ironworks::sestring::SeString; -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for GCRankUldahMaleText { fn name() -> String { "GCRankUldahMaleText".to_string() @@ -23,6 +23,7 @@ pub struct GCRankUldahMaleText { pub r#pronoun: i8, pub r#article: i8, pub r#name_rank: SeString, + pub r#unknown9: SeString, } impl GCRankUldahMaleText { pub fn populate(row: &Row, offset: usize) -> Result { @@ -36,6 +37,7 @@ impl GCRankUldahMaleText { r#pronoun: row.field(6usize + offset)?.into_i8()?, r#article: row.field(7usize + offset)?.into_i8()?, r#name_rank: row.field(8usize + offset)?.into_string()?, + r#unknown9: row.field(9usize + offset)?.into_string()?, }) } } diff --git a/src/sheet/gc_scrip_shop_category.rs b/src/sheet/gc_scrip_shop_category.rs index 6dec2ded..93dc55b2 100644 --- a/src/sheet/gc_scrip_shop_category.rs +++ b/src/sheet/gc_scrip_shop_category.rs @@ -1,7 +1,7 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; use ironworks::excel::Row; -use crate::error::PopulateError; +use std::result::Result; impl MetadataAdapter for GCScripShopCategory { fn name() -> String { "GCScripShopCategory".to_string() diff --git a/src/sheet/gc_scrip_shop_item.rs b/src/sheet/gc_scrip_shop_item.rs index b59f5aa5..d332806e 100644 --- a/src/sheet/gc_scrip_shop_item.rs +++ b/src/sheet/gc_scrip_shop_item.rs @@ -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 GCScripShopItem { fn name() -> String { "GCScripShopItem".to_string() diff --git a/src/sheet/gc_shop.rs b/src/sheet/gc_shop.rs index daaf0fd5..e92c11cd 100644 --- a/src/sheet/gc_shop.rs +++ b/src/sheet/gc_shop.rs @@ -1,7 +1,7 @@ -use std::result::Result; -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 GCShop { fn name() -> String { "GCShop".to_string() diff --git a/src/sheet/gc_shop_item_category.rs b/src/sheet/gc_shop_item_category.rs index 6ddde968..892793f4 100644 --- a/src/sheet/gc_shop_item_category.rs +++ b/src/sheet/gc_shop_item_category.rs @@ -1,8 +1,8 @@ use crate::error::PopulateError; -use std::result::Result; use crate::metadata::MetadataAdapter; -use ironworks::sestring::SeString; use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for GCShopItemCategory { fn name() -> String { "GCShopItemCategory".to_string() diff --git a/src/sheet/gc_supply_duty.rs b/src/sheet/gc_supply_duty.rs index 602b21f9..cc4d5c44 100644 --- a/src/sheet/gc_supply_duty.rs +++ b/src/sheet/gc_supply_duty.rs @@ -1,9 +1,9 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use crate::utility::read_array; use ironworks::excel::Row; use std::result::Result; use std::vec::Vec; -use crate::utility::read_array; -use crate::error::PopulateError; impl MetadataAdapter for GCSupplyDuty { fn name() -> String { "GCSupplyDuty".to_string() diff --git a/src/sheet/gc_supply_duty_reward.rs b/src/sheet/gc_supply_duty_reward.rs index a5769940..790e7dd7 100644 --- a/src/sheet/gc_supply_duty_reward.rs +++ b/src/sheet/gc_supply_duty_reward.rs @@ -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 GCSupplyDutyReward { fn name() -> String { "GCSupplyDutyReward".to_string() diff --git a/src/sheet/general_action.rs b/src/sheet/general_action.rs index 0adf20f5..098aa43f 100644 --- a/src/sheet/general_action.rs +++ b/src/sheet/general_action.rs @@ -1,8 +1,8 @@ -use std::result::Result; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for GeneralAction { fn name() -> String { "GeneralAction".to_string() @@ -22,6 +22,8 @@ pub struct GeneralAction { pub r#recast: u8, pub r#ui_priority: u8, pub r#icon: i32, + pub r#unknown8: bool, + pub r#unknown9: bool, } impl GeneralAction { pub fn populate(row: &Row, offset: usize) -> Result { @@ -34,6 +36,8 @@ impl GeneralAction { r#recast: row.field(5usize + offset)?.into_u8()?, r#ui_priority: row.field(6usize + offset)?.into_u8()?, r#icon: row.field(7usize + offset)?.into_i32()?, + r#unknown8: row.field(8usize + offset)?.into_bool()?, + r#unknown9: row.field(9usize + offset)?.into_bool()?, }) } } diff --git a/src/sheet/gfate.rs b/src/sheet/gfate.rs index 5c674e9c..3dd32c40 100644 --- a/src/sheet/gfate.rs +++ b/src/sheet/gfate.rs @@ -1,9 +1,9 @@ -use std::vec::Vec; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; use crate::utility::read_array; use ironworks::excel::Row; -use crate::error::PopulateError; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for GFATE { fn name() -> String { "GFATE".to_string() @@ -25,6 +25,55 @@ pub struct GFATE { pub r#lgb_pop_range: Vec, pub r#unknown22: u32, pub r#icon: Vec, + pub r#unknown38: u32, + pub r#unknown39: bool, + pub r#unknown40: bool, + pub r#unknown41: bool, + pub r#unknown42: bool, + pub r#unknown43: bool, + pub r#unknown44: bool, + pub r#unknown45: bool, + pub r#unknown46: bool, + pub r#unknown47: bool, + pub r#unknown48: bool, + pub r#unknown49: bool, + pub r#unknown50: bool, + pub r#unknown51: bool, + pub r#unknown52: bool, + pub r#unknown53: bool, + pub r#unknown54: bool, + pub r#unknown55: bool, + pub r#unknown56: bool, + pub r#unknown57: bool, + pub r#unknown58: bool, + pub r#unknown59: bool, + pub r#unknown60: bool, + pub r#unknown61: bool, + pub r#unknown62: bool, + pub r#unknown63: bool, + pub r#unknown64: bool, + pub r#unknown65: bool, + pub r#unknown66: bool, + pub r#unknown67: bool, + pub r#unknown68: bool, + pub r#unknown69: bool, + pub r#unknown70: bool, + pub r#unknown71: bool, + pub r#unknown72: bool, + pub r#unknown73: bool, + pub r#unknown74: bool, + pub r#unknown75: bool, + pub r#unknown76: bool, + pub r#unknown77: bool, + pub r#unknown78: bool, + pub r#unknown79: bool, + pub r#unknown80: bool, + pub r#unknown81: bool, + pub r#unknown82: bool, + pub r#unknown83: bool, + pub r#unknown84: bool, + pub r#unknown85: bool, + pub r#unknown86: bool, } impl GFATE { pub fn populate(row: &Row, offset: usize) -> Result { @@ -49,6 +98,55 @@ impl GFATE { 1usize, |offset| { Result::Ok(row.field(23usize + offset)?.into_u32()?) }, )?, + r#unknown38: row.field(38usize + offset)?.into_u32()?, + r#unknown39: row.field(39usize + offset)?.into_bool()?, + r#unknown40: row.field(40usize + offset)?.into_bool()?, + r#unknown41: row.field(41usize + offset)?.into_bool()?, + r#unknown42: row.field(42usize + offset)?.into_bool()?, + r#unknown43: row.field(43usize + offset)?.into_bool()?, + r#unknown44: row.field(44usize + offset)?.into_bool()?, + r#unknown45: row.field(45usize + offset)?.into_bool()?, + r#unknown46: row.field(46usize + offset)?.into_bool()?, + r#unknown47: row.field(47usize + offset)?.into_bool()?, + r#unknown48: row.field(48usize + offset)?.into_bool()?, + r#unknown49: row.field(49usize + offset)?.into_bool()?, + r#unknown50: row.field(50usize + offset)?.into_bool()?, + r#unknown51: row.field(51usize + offset)?.into_bool()?, + r#unknown52: row.field(52usize + offset)?.into_bool()?, + r#unknown53: row.field(53usize + offset)?.into_bool()?, + r#unknown54: row.field(54usize + offset)?.into_bool()?, + r#unknown55: row.field(55usize + offset)?.into_bool()?, + r#unknown56: row.field(56usize + offset)?.into_bool()?, + r#unknown57: row.field(57usize + offset)?.into_bool()?, + r#unknown58: row.field(58usize + offset)?.into_bool()?, + r#unknown59: row.field(59usize + offset)?.into_bool()?, + r#unknown60: row.field(60usize + offset)?.into_bool()?, + 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_bool()?, + r#unknown65: row.field(65usize + offset)?.into_bool()?, + r#unknown66: row.field(66usize + offset)?.into_bool()?, + r#unknown67: 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_bool()?, + r#unknown71: row.field(71usize + offset)?.into_bool()?, + r#unknown72: row.field(72usize + offset)?.into_bool()?, + r#unknown73: row.field(73usize + offset)?.into_bool()?, + r#unknown74: row.field(74usize + offset)?.into_bool()?, + r#unknown75: row.field(75usize + offset)?.into_bool()?, + r#unknown76: row.field(76usize + offset)?.into_bool()?, + r#unknown77: row.field(77usize + offset)?.into_bool()?, + r#unknown78: row.field(78usize + offset)?.into_bool()?, + r#unknown79: row.field(79usize + offset)?.into_bool()?, + r#unknown80: row.field(80usize + offset)?.into_bool()?, + r#unknown81: row.field(81usize + offset)?.into_bool()?, + r#unknown82: row.field(82usize + offset)?.into_bool()?, + r#unknown83: row.field(83usize + offset)?.into_bool()?, + r#unknown84: row.field(84usize + offset)?.into_bool()?, + r#unknown85: row.field(85usize + offset)?.into_bool()?, + r#unknown86: row.field(86usize + offset)?.into_bool()?, }) } } diff --git a/src/sheet/gil_shop.rs b/src/sheet/gil_shop.rs index 5f0e55cc..fa8447b8 100644 --- a/src/sheet/gil_shop.rs +++ b/src/sheet/gil_shop.rs @@ -1,7 +1,7 @@ -use ironworks::sestring::SeString; -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; use std::result::Result; impl MetadataAdapter for GilShop { fn name() -> String { @@ -19,6 +19,9 @@ pub struct GilShop { pub r#quest: u32, pub r#accept_talk: i32, pub r#fail_talk: i32, + pub r#unknown5: bool, + pub r#unknown6: u16, + pub r#unknown7: u16, } impl GilShop { pub fn populate(row: &Row, offset: usize) -> Result { @@ -28,6 +31,9 @@ impl GilShop { r#quest: row.field(2usize + offset)?.into_u32()?, r#accept_talk: row.field(3usize + offset)?.into_i32()?, r#fail_talk: row.field(4usize + offset)?.into_i32()?, + r#unknown5: row.field(5usize + offset)?.into_bool()?, + r#unknown6: row.field(6usize + offset)?.into_u16()?, + r#unknown7: row.field(7usize + offset)?.into_u16()?, }) } } diff --git a/src/sheet/gil_shop_item.rs b/src/sheet/gil_shop_item.rs index e3ceceb5..66d480c4 100644 --- a/src/sheet/gil_shop_item.rs +++ b/src/sheet/gil_shop_item.rs @@ -1,9 +1,9 @@ -use ironworks::excel::Row; -use std::vec::Vec; use crate::error::PopulateError; -use std::result::Result; -use crate::utility::read_array; use crate::metadata::MetadataAdapter; +use crate::utility::read_array; +use ironworks::excel::Row; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for GilShopItem { fn name() -> String { "GilShopItem".to_string() @@ -17,10 +17,11 @@ impl MetadataAdapter for GilShopItem { pub struct GilShopItem { pub r#item: i32, pub r#unknown1: bool, - pub r#unknown2: i32, + pub r#unknown2: u8, + pub r#unknown3: u8, pub r#quest_required: Vec, pub r#achievement_required: i32, - pub r#unknown6: u8, + pub r#unknown7: u8, pub r#state_required: u16, pub r#patch: u16, } @@ -29,17 +30,18 @@ impl GilShopItem { Result::Ok(Self { r#item: row.field(0usize + offset)?.into_i32()?, r#unknown1: row.field(1usize + offset)?.into_bool()?, - r#unknown2: row.field(2usize + offset)?.into_i32()?, + r#unknown2: row.field(2usize + offset)?.into_u8()?, + r#unknown3: row.field(3usize + offset)?.into_u8()?, r#quest_required: read_array( offset, 2usize, 1usize, - |offset| { Result::Ok(row.field(3usize + offset)?.into_i32()?) }, + |offset| { Result::Ok(row.field(4usize + offset)?.into_i32()?) }, )?, - r#achievement_required: row.field(5usize + offset)?.into_i32()?, - r#unknown6: row.field(6usize + offset)?.into_u8()?, - r#state_required: row.field(7usize + offset)?.into_u16()?, - r#patch: row.field(8usize + offset)?.into_u16()?, + r#achievement_required: row.field(6usize + offset)?.into_i32()?, + r#unknown7: row.field(7usize + offset)?.into_u8()?, + r#state_required: row.field(8usize + offset)?.into_u16()?, + r#patch: row.field(9usize + offset)?.into_u16()?, }) } } diff --git a/src/sheet/gimmick_accessor.rs b/src/sheet/gimmick_accessor.rs index 51981405..e995e972 100644 --- a/src/sheet/gimmick_accessor.rs +++ b/src/sheet/gimmick_accessor.rs @@ -17,6 +17,13 @@ pub struct GimmickAccessor { pub r#param1: u32, pub r#param2: u32, pub r#type: u32, + pub r#unknown4: u32, + pub r#unknown5: u32, + pub r#unknown6: u32, + pub r#unknown7: bool, + pub r#unknown8: bool, + pub r#unknown9: bool, + pub r#unknown10: bool, } impl GimmickAccessor { pub fn populate(row: &Row, offset: usize) -> Result { @@ -25,6 +32,13 @@ impl GimmickAccessor { r#param1: row.field(1usize + offset)?.into_u32()?, r#param2: row.field(2usize + offset)?.into_u32()?, r#type: row.field(3usize + offset)?.into_u32()?, + r#unknown4: row.field(4usize + offset)?.into_u32()?, + r#unknown5: row.field(5usize + offset)?.into_u32()?, + r#unknown6: row.field(6usize + offset)?.into_u32()?, + r#unknown7: row.field(7usize + offset)?.into_bool()?, + r#unknown8: row.field(8usize + offset)?.into_bool()?, + r#unknown9: row.field(9usize + offset)?.into_bool()?, + r#unknown10: row.field(10usize + offset)?.into_bool()?, }) } } diff --git a/src/sheet/gimmick_jump.rs b/src/sheet/gimmick_jump.rs index 09b78bff..864cbb13 100644 --- a/src/sheet/gimmick_jump.rs +++ b/src/sheet/gimmick_jump.rs @@ -1,7 +1,7 @@ -use crate::metadata::MetadataAdapter; -use std::result::Result; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for GimmickJump { fn name() -> String { "GimmickJump".to_string() @@ -14,19 +14,27 @@ impl MetadataAdapter for GimmickJump { #[derive(Debug)] pub struct GimmickJump { pub r#fall_damage: u16, - pub r#height: i8, + pub r#height: u16, pub r#loop_motion: u32, pub r#end_motion: u32, pub r#start_client: bool, + pub r#unknown5: bool, + pub r#unknown6: u16, + pub r#unknown7: u16, + pub r#unknown8: bool, } impl GimmickJump { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#fall_damage: row.field(0usize + offset)?.into_u16()?, - r#height: row.field(1usize + offset)?.into_i8()?, + r#height: row.field(1usize + offset)?.into_u16()?, r#loop_motion: row.field(2usize + offset)?.into_u32()?, r#end_motion: row.field(3usize + offset)?.into_u32()?, r#start_client: row.field(4usize + offset)?.into_bool()?, + r#unknown5: row.field(5usize + offset)?.into_bool()?, + r#unknown6: row.field(6usize + offset)?.into_u16()?, + r#unknown7: row.field(7usize + offset)?.into_u16()?, + r#unknown8: row.field(8usize + offset)?.into_bool()?, }) } } diff --git a/src/sheet/gimmick_rect.rs b/src/sheet/gimmick_rect.rs index 16287044..bcc7baa3 100644 --- a/src/sheet/gimmick_rect.rs +++ b/src/sheet/gimmick_rect.rs @@ -1,7 +1,7 @@ -use std::result::Result; -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for GimmickRect { fn name() -> String { "GimmickRect".to_string() @@ -21,6 +21,9 @@ pub struct GimmickRect { pub r#unknown5: u32, pub r#trigger_out: u8, pub r#param1: u32, + pub r#unknown8: u32, + pub r#unknown9: u32, + pub r#unknown10: u32, } impl GimmickRect { pub fn populate(row: &Row, offset: usize) -> Result { @@ -33,6 +36,9 @@ impl GimmickRect { r#unknown5: row.field(5usize + offset)?.into_u32()?, r#trigger_out: row.field(6usize + offset)?.into_u8()?, r#param1: row.field(7usize + offset)?.into_u32()?, + r#unknown8: row.field(8usize + offset)?.into_u32()?, + r#unknown9: row.field(9usize + offset)?.into_u32()?, + r#unknown10: row.field(10usize + offset)?.into_u32()?, }) } } diff --git a/src/sheet/glasses.rs b/src/sheet/glasses.rs new file mode 100644 index 00000000..64a03403 --- /dev/null +++ b/src/sheet/glasses.rs @@ -0,0 +1,51 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; +impl MetadataAdapter for Glasses { + fn name() -> String { + "Glasses".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(Glasses::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct Glasses { + pub r#unknown0: u32, + pub r#glasses_style: i16, + pub r#icon: i32, + pub r#unknown3: u16, + pub r#singular: SeString, + pub r#unknown5: i8, + pub r#plural: SeString, + pub r#unknown7: i8, + pub r#unknown8: i8, + pub r#unknown9: i8, + pub r#unknown10: i8, + pub r#unknown11: i8, + pub r#description: SeString, + pub r#name: SeString, +} +impl Glasses { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u32()?, + r#glasses_style: row.field(1usize + offset)?.into_i16()?, + r#icon: row.field(2usize + offset)?.into_i32()?, + r#unknown3: row.field(3usize + offset)?.into_u16()?, + r#singular: row.field(4usize + offset)?.into_string()?, + r#unknown5: row.field(5usize + offset)?.into_i8()?, + r#plural: row.field(6usize + offset)?.into_string()?, + r#unknown7: row.field(7usize + offset)?.into_i8()?, + r#unknown8: row.field(8usize + offset)?.into_i8()?, + r#unknown9: row.field(9usize + offset)?.into_i8()?, + r#unknown10: row.field(10usize + offset)?.into_i8()?, + r#unknown11: row.field(11usize + offset)?.into_i8()?, + r#description: row.field(12usize + offset)?.into_string()?, + r#name: row.field(13usize + offset)?.into_string()?, + }) + } +} diff --git a/src/sheet/glasses_style.rs b/src/sheet/glasses_style.rs new file mode 100644 index 00000000..6c3ad6e8 --- /dev/null +++ b/src/sheet/glasses_style.rs @@ -0,0 +1,56 @@ +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 std::vec::Vec; +impl MetadataAdapter for GlassesStyle { + fn name() -> String { + "GlassesStyle".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(GlassesStyle::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct GlassesStyle { + pub r#unknown0: i16, + pub r#icon: i32, + pub r#order: u16, + pub r#glasses: Vec, + pub r#singular: SeString, + pub r#unknown16: i8, + pub r#plural: SeString, + pub r#unknown18: i8, + pub r#unknown19: i8, + pub r#unknown20: i8, + pub r#unknown21: i8, + pub r#unknown22: i8, + pub r#name: SeString, +} +impl GlassesStyle { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_i16()?, + r#icon: row.field(1usize + offset)?.into_i32()?, + r#order: row.field(2usize + offset)?.into_u16()?, + r#glasses: read_array( + offset, + 12usize, + 1usize, + |offset| { Result::Ok(row.field(3usize + offset)?.into_u16()?) }, + )?, + r#singular: row.field(15usize + offset)?.into_string()?, + r#unknown16: row.field(16usize + offset)?.into_i8()?, + r#plural: row.field(17usize + offset)?.into_string()?, + r#unknown18: row.field(18usize + offset)?.into_i8()?, + r#unknown19: row.field(19usize + offset)?.into_i8()?, + r#unknown20: row.field(20usize + offset)?.into_i8()?, + r#unknown21: row.field(21usize + offset)?.into_i8()?, + r#unknown22: row.field(22usize + offset)?.into_i8()?, + r#name: row.field(23usize + offset)?.into_string()?, + }) + } +} diff --git a/src/sheet/gold_saucer_arcade_machine.rs b/src/sheet/gold_saucer_arcade_machine.rs index dd076e66..48350854 100644 --- a/src/sheet/gold_saucer_arcade_machine.rs +++ b/src/sheet/gold_saucer_arcade_machine.rs @@ -1,7 +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 std::result::Result; impl MetadataAdapter for GoldSaucerArcadeMachine { fn name() -> String { "GoldSaucerArcadeMachine".to_string() @@ -52,6 +53,10 @@ pub struct GoldSaucerArcadeMachine { pub r#good: u32, pub r#great: u32, pub r#excellent: u32, + pub r#unknown39: SeString, + pub r#unknown40: SeString, + pub r#unknown41: SeString, + pub r#unknown42: SeString, } impl GoldSaucerArcadeMachine { pub fn populate(row: &Row, offset: usize) -> Result { @@ -95,6 +100,10 @@ impl GoldSaucerArcadeMachine { r#good: row.field(36usize + offset)?.into_u32()?, r#great: row.field(37usize + offset)?.into_u32()?, r#excellent: row.field(38usize + offset)?.into_u32()?, + r#unknown39: row.field(39usize + offset)?.into_string()?, + r#unknown40: row.field(40usize + offset)?.into_string()?, + r#unknown41: row.field(41usize + offset)?.into_string()?, + r#unknown42: row.field(42usize + offset)?.into_string()?, }) } } diff --git a/src/sheet/gold_saucer_text_data.rs b/src/sheet/gold_saucer_text_data.rs index 1410652d..a8a4dec1 100644 --- a/src/sheet/gold_saucer_text_data.rs +++ b/src/sheet/gold_saucer_text_data.rs @@ -1,8 +1,8 @@ -use ironworks::sestring::SeString; 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 GoldSaucerTextData { fn name() -> String { "GoldSaucerTextData".to_string() diff --git a/src/sheet/grand_company.rs b/src/sheet/grand_company.rs index 1195adc8..6fbdbc82 100644 --- a/src/sheet/grand_company.rs +++ b/src/sheet/grand_company.rs @@ -1,8 +1,8 @@ -use ironworks::sestring::SeString; -use ironworks::excel::Row; -use std::result::Result; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for GrandCompany { fn name() -> String { "GrandCompany".to_string() @@ -15,11 +15,29 @@ impl MetadataAdapter for GrandCompany { #[derive(Debug)] pub struct GrandCompany { pub r#name: SeString, + pub r#unknown1: i8, + pub r#unknown2: SeString, + pub r#unknown3: i8, + pub r#unknown4: i8, + pub r#unknown5: i8, + pub r#unknown6: i8, + pub r#unknown7: i8, + pub r#unknown8: SeString, + pub r#unknown9: i8, } impl GrandCompany { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#name: row.field(0usize + offset)?.into_string()?, + r#unknown1: row.field(1usize + offset)?.into_i8()?, + r#unknown2: row.field(2usize + offset)?.into_string()?, + r#unknown3: row.field(3usize + offset)?.into_i8()?, + r#unknown4: row.field(4usize + offset)?.into_i8()?, + r#unknown5: row.field(5usize + offset)?.into_i8()?, + r#unknown6: row.field(6usize + offset)?.into_i8()?, + r#unknown7: row.field(7usize + offset)?.into_i8()?, + r#unknown8: row.field(8usize + offset)?.into_string()?, + r#unknown9: row.field(9usize + offset)?.into_i8()?, }) } } diff --git a/src/sheet/grand_company_rank.rs b/src/sheet/grand_company_rank.rs index 6743d933..4384b635 100644 --- a/src/sheet/grand_company_rank.rs +++ b/src/sheet/grand_company_rank.rs @@ -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 GrandCompanyRank { fn name() -> String { @@ -23,6 +23,7 @@ pub struct GrandCompanyRank { pub r#quest_maelstrom: i32, pub r#quest_serpents: i32, pub r#quest_flames: i32, + pub r#unknown10: u8, } impl GrandCompanyRank { pub fn populate(row: &Row, offset: usize) -> Result { @@ -37,6 +38,7 @@ impl GrandCompanyRank { r#quest_maelstrom: row.field(7usize + offset)?.into_i32()?, r#quest_serpents: row.field(8usize + offset)?.into_i32()?, r#quest_flames: row.field(9usize + offset)?.into_i32()?, + r#unknown10: row.field(10usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/group_pose_frame.rs b/src/sheet/group_pose_frame.rs index b1a43b8a..d04b448b 100644 --- a/src/sheet/group_pose_frame.rs +++ b/src/sheet/group_pose_frame.rs @@ -1,8 +1,8 @@ -use std::result::Result; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; use ironworks::sestring::SeString; -use crate::metadata::MetadataAdapter; +use std::result::Result; impl MetadataAdapter for GroupPoseFrame { fn name() -> String { "GroupPoseFrame".to_string() @@ -20,8 +20,10 @@ pub struct GroupPoseFrame { pub r#unknown3: i32, pub r#unknown4: u32, pub r#unknown5: u8, - pub r#unknown6: i32, - pub r#text: SeString, + pub r#unknown6: u8, + pub r#text: u32, + pub r#unknown8: i32, + pub r#unknown9: SeString, } impl GroupPoseFrame { pub fn populate(row: &Row, offset: usize) -> Result { @@ -32,8 +34,10 @@ impl GroupPoseFrame { r#unknown3: row.field(3usize + offset)?.into_i32()?, r#unknown4: row.field(4usize + offset)?.into_u32()?, r#unknown5: row.field(5usize + offset)?.into_u8()?, - r#unknown6: row.field(6usize + offset)?.into_i32()?, - r#text: row.field(7usize + offset)?.into_string()?, + r#unknown6: row.field(6usize + offset)?.into_u8()?, + r#text: row.field(7usize + offset)?.into_u32()?, + r#unknown8: row.field(8usize + offset)?.into_i32()?, + r#unknown9: row.field(9usize + offset)?.into_string()?, }) } } diff --git a/src/sheet/group_pose_stamp.rs b/src/sheet/group_pose_stamp.rs index abe2f377..520bb21b 100644 --- a/src/sheet/group_pose_stamp.rs +++ b/src/sheet/group_pose_stamp.rs @@ -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 ironworks::excel::Row; impl MetadataAdapter for GroupPoseStamp { fn name() -> String { "GroupPoseStamp".to_string() @@ -18,10 +18,12 @@ pub struct GroupPoseStamp { pub r#unknown1: i32, pub r#category: i32, pub r#unknown3: u16, - pub r#unknown4: i32, - pub r#unknown5: bool, - pub r#unknown6: bool, + pub r#unknown4: u8, + pub r#unknown5: u32, + pub r#unknown6: i32, pub r#unknown7: bool, + pub r#unknown8: bool, + pub r#unknown9: bool, pub r#name: SeString, } impl GroupPoseStamp { @@ -31,11 +33,13 @@ impl GroupPoseStamp { r#unknown1: row.field(1usize + offset)?.into_i32()?, r#category: row.field(2usize + offset)?.into_i32()?, r#unknown3: row.field(3usize + offset)?.into_u16()?, - r#unknown4: row.field(4usize + offset)?.into_i32()?, - r#unknown5: row.field(5usize + offset)?.into_bool()?, - r#unknown6: row.field(6usize + offset)?.into_bool()?, + r#unknown4: row.field(4usize + offset)?.into_u8()?, + r#unknown5: row.field(5usize + offset)?.into_u32()?, + r#unknown6: row.field(6usize + offset)?.into_i32()?, r#unknown7: row.field(7usize + offset)?.into_bool()?, - r#name: row.field(8usize + offset)?.into_string()?, + r#unknown8: row.field(8usize + offset)?.into_bool()?, + r#unknown9: row.field(9usize + offset)?.into_bool()?, + r#name: row.field(10usize + offset)?.into_string()?, }) } } diff --git a/src/sheet/group_pose_stamp_category.rs b/src/sheet/group_pose_stamp_category.rs index 69e61c28..d46f4dde 100644 --- a/src/sheet/group_pose_stamp_category.rs +++ b/src/sheet/group_pose_stamp_category.rs @@ -1,8 +1,8 @@ -use ironworks::sestring::SeString; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; use ironworks::excel::Row; -use crate::error::PopulateError; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for GroupPoseStampCategory { fn name() -> String { "GroupPoseStampCategory".to_string() diff --git a/src/sheet/guardian_deity.rs b/src/sheet/guardian_deity.rs index 543f950c..6b20c1fe 100644 --- a/src/sheet/guardian_deity.rs +++ b/src/sheet/guardian_deity.rs @@ -1,8 +1,8 @@ -use std::result::Result; -use ironworks::excel::Row; use crate::error::PopulateError; -use ironworks::sestring::SeString; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for GuardianDeity { fn name() -> String { "GuardianDeity".to_string() diff --git a/src/sheet/guide.rs b/src/sheet/guide.rs index 28e57e6c..8c6ece68 100644 --- a/src/sheet/guide.rs +++ b/src/sheet/guide.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; use crate::error::PopulateError; -use std::result::Result; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for Guide { fn name() -> String { "Guide".to_string() diff --git a/src/sheet/guide_page.rs b/src/sheet/guide_page.rs index d9a1e20e..dd313bd9 100644 --- a/src/sheet/guide_page.rs +++ b/src/sheet/guide_page.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; -use std::result::Result; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for GuidePage { fn name() -> String { "GuidePage".to_string() @@ -14,13 +14,15 @@ impl MetadataAdapter for GuidePage { #[derive(Debug)] pub struct GuidePage { pub r#key: u8, + pub r#unknown1: bool, pub r#output: u32, } impl GuidePage { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#key: row.field(0usize + offset)?.into_u8()?, - r#output: row.field(1usize + offset)?.into_u32()?, + r#unknown1: row.field(1usize + offset)?.into_bool()?, + r#output: row.field(2usize + offset)?.into_u32()?, }) } } diff --git a/src/sheet/guide_page_string.rs b/src/sheet/guide_page_string.rs index d04cd92c..26e5738f 100644 --- a/src/sheet/guide_page_string.rs +++ b/src/sheet/guide_page_string.rs @@ -1,8 +1,8 @@ -use std::result::Result; -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; -use ironworks::sestring::SeString; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for GuidePageString { fn name() -> String { "GuidePageString".to_string() diff --git a/src/sheet/guide_title.rs b/src/sheet/guide_title.rs index 98dfb243..fb0cdf8e 100644 --- a/src/sheet/guide_title.rs +++ b/src/sheet/guide_title.rs @@ -1,8 +1,8 @@ -use ironworks::sestring::SeString; -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 std::result::Result; impl MetadataAdapter for GuideTitle { fn name() -> String { "GuideTitle".to_string() @@ -15,11 +15,13 @@ impl MetadataAdapter for GuideTitle { #[derive(Debug)] pub struct GuideTitle { pub r#title: SeString, + pub r#unknown1: SeString, } impl GuideTitle { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#title: row.field(0usize + offset)?.into_string()?, + r#unknown1: row.field(1usize + offset)?.into_string()?, }) } } diff --git a/src/sheet/guild_order.rs b/src/sheet/guild_order.rs index d14d501f..0c9eb17a 100644 --- a/src/sheet/guild_order.rs +++ b/src/sheet/guild_order.rs @@ -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 ironworks::excel::Row; -use crate::error::PopulateError; impl MetadataAdapter for GuildOrder { fn name() -> String { "GuildOrder".to_string() @@ -23,6 +23,14 @@ pub struct GuildOrder { pub r#reward_exp: u32, pub r#completion_bonus_gil: u32, pub r#reward_gil: u32, + pub r#unknown9: u32, + pub r#unknown10: u32, + pub r#unknown11: u32, + pub r#unknown12: u32, + pub r#unknown13: u16, + pub r#unknown14: u16, + pub r#unknown15: bool, + pub r#unknown16: bool, } impl GuildOrder { pub fn populate(row: &Row, offset: usize) -> Result { @@ -36,6 +44,14 @@ impl GuildOrder { r#reward_exp: row.field(6usize + offset)?.into_u32()?, r#completion_bonus_gil: row.field(7usize + offset)?.into_u32()?, r#reward_gil: row.field(8usize + offset)?.into_u32()?, + r#unknown9: row.field(9usize + offset)?.into_u32()?, + r#unknown10: row.field(10usize + offset)?.into_u32()?, + r#unknown11: row.field(11usize + offset)?.into_u32()?, + r#unknown12: row.field(12usize + offset)?.into_u32()?, + r#unknown13: row.field(13usize + offset)?.into_u16()?, + r#unknown14: row.field(14usize + offset)?.into_u16()?, + r#unknown15: row.field(15usize + offset)?.into_bool()?, + r#unknown16: row.field(16usize + offset)?.into_bool()?, }) } } diff --git a/src/sheet/guild_order_guide.rs b/src/sheet/guild_order_guide.rs index 5347ec33..c65b1d69 100644 --- a/src/sheet/guild_order_guide.rs +++ b/src/sheet/guild_order_guide.rs @@ -1,7 +1,7 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; use ironworks::excel::Row; -use crate::error::PopulateError; +use std::result::Result; impl MetadataAdapter for GuildOrderGuide { fn name() -> String { "GuildOrderGuide".to_string() @@ -12,9 +12,23 @@ impl MetadataAdapter for GuildOrderGuide { } } #[derive(Debug)] -pub struct GuildOrderGuide {} +pub struct GuildOrderGuide { + pub r#unknown0: u32, + pub r#unknown1: u32, + pub r#unknown2: u32, + pub r#unknown3: u32, + pub r#unknown4: u32, + pub r#unknown5: u32, +} impl GuildOrderGuide { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u32()?, + r#unknown1: row.field(1usize + offset)?.into_u32()?, + r#unknown2: row.field(2usize + offset)?.into_u32()?, + r#unknown3: row.field(3usize + offset)?.into_u32()?, + r#unknown4: row.field(4usize + offset)?.into_u32()?, + r#unknown5: row.field(5usize + offset)?.into_u32()?, + }) } } diff --git a/src/sheet/guild_order_officer.rs b/src/sheet/guild_order_officer.rs index 38c34a75..0e628578 100644 --- a/src/sheet/guild_order_officer.rs +++ b/src/sheet/guild_order_officer.rs @@ -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 GuildOrderOfficer { fn name() -> String { "GuildOrderOfficer".to_string() @@ -12,9 +12,23 @@ impl MetadataAdapter for GuildOrderOfficer { } } #[derive(Debug)] -pub struct GuildOrderOfficer {} +pub struct GuildOrderOfficer { + pub r#unknown0: u32, + pub r#unknown1: u32, + pub r#unknown2: u32, + pub r#unknown3: u32, + pub r#unknown4: u32, + pub r#unknown5: u32, +} impl GuildOrderOfficer { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u32()?, + r#unknown1: row.field(1usize + offset)?.into_u32()?, + r#unknown2: row.field(2usize + offset)?.into_u32()?, + r#unknown3: row.field(3usize + offset)?.into_u32()?, + r#unknown4: row.field(4usize + offset)?.into_u32()?, + r#unknown5: row.field(5usize + offset)?.into_u32()?, + }) } } diff --git a/src/sheet/guildleve_assignment.rs b/src/sheet/guildleve_assignment.rs index 44ab4006..65f3dba9 100644 --- a/src/sheet/guildleve_assignment.rs +++ b/src/sheet/guildleve_assignment.rs @@ -1,9 +1,9 @@ -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; -use std::result::Result; -use ironworks::excel::Row; +use crate::metadata::MetadataAdapter; use crate::utility::read_array; +use ironworks::excel::Row; use ironworks::sestring::SeString; +use std::result::Result; use std::vec::Vec; impl MetadataAdapter for GuildleveAssignment { fn name() -> String { @@ -20,6 +20,12 @@ pub struct GuildleveAssignment { pub r#unknown1: u8, pub r#assignment_talk: u32, pub r#quest: Vec, + pub r#unknown5: bool, + pub r#unknown6: bool, + pub r#unknown7: bool, + pub r#unknown8: bool, + pub r#unknown9: bool, + pub r#unknown10: u8, } impl GuildleveAssignment { pub fn populate(row: &Row, offset: usize) -> Result { @@ -33,6 +39,12 @@ impl GuildleveAssignment { 1usize, |offset| { Result::Ok(row.field(3usize + offset)?.into_u32()?) }, )?, + r#unknown5: row.field(5usize + offset)?.into_bool()?, + r#unknown6: row.field(6usize + offset)?.into_bool()?, + r#unknown7: row.field(7usize + offset)?.into_bool()?, + r#unknown8: row.field(8usize + offset)?.into_bool()?, + r#unknown9: row.field(9usize + offset)?.into_bool()?, + r#unknown10: row.field(10usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/guildleve_assignment_category.rs b/src/sheet/guildleve_assignment_category.rs index 7c79a64d..572f6f0a 100644 --- a/src/sheet/guildleve_assignment_category.rs +++ b/src/sheet/guildleve_assignment_category.rs @@ -1,9 +1,9 @@ -use std::vec::Vec; -use crate::utility::read_array; -use std::result::Result; use crate::error::PopulateError; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; +use crate::utility::read_array; +use ironworks::excel::Row; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for GuildleveAssignmentCategory { fn name() -> String { "GuildleveAssignmentCategory".to_string() diff --git a/src/sheet/guildleve_assignment_talk.rs b/src/sheet/guildleve_assignment_talk.rs index 2ab23a94..65c19104 100644 --- a/src/sheet/guildleve_assignment_talk.rs +++ b/src/sheet/guildleve_assignment_talk.rs @@ -1,9 +1,9 @@ -use ironworks::excel::Row; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use crate::utility::read_array; +use ironworks::excel::Row; use ironworks::sestring::SeString; -use crate::error::PopulateError; use std::result::Result; -use crate::utility::read_array; use std::vec::Vec; impl MetadataAdapter for GuildleveAssignmentTalk { fn name() -> String { diff --git a/src/sheet/hair_make_type.rs b/src/sheet/hair_make_type.rs index 58d617c4..89a11f80 100644 --- a/src/sheet/hair_make_type.rs +++ b/src/sheet/hair_make_type.rs @@ -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 HairMakeType { fn name() -> String { "HairMakeType".to_string() @@ -16,6 +16,1169 @@ pub struct HairMakeType { pub r#race: i32, pub r#tribe: i32, pub r#gender: i8, + pub r#unknown3: u32, + pub r#unknown4: u32, + pub r#unknown5: u32, + pub r#unknown6: u32, + pub r#unknown7: u32, + pub r#unknown8: u32, + pub r#unknown9: u32, + pub r#unknown10: u32, + pub r#unknown11: u32, + pub r#unknown12: u8, + pub r#unknown13: u8, + pub r#unknown14: u8, + pub r#unknown15: u8, + pub r#unknown16: u8, + pub r#unknown17: u8, + pub r#unknown18: u8, + pub r#unknown19: u8, + pub r#unknown20: u8, + pub r#unknown21: u8, + pub r#unknown22: u8, + pub r#unknown23: u8, + pub r#unknown24: u8, + pub r#unknown25: u8, + pub r#unknown26: u8, + pub r#unknown27: u8, + pub r#unknown28: u8, + pub r#unknown29: u8, + pub r#unknown30: u8, + pub r#unknown31: u8, + pub r#unknown32: u8, + pub r#unknown33: u8, + pub r#unknown34: u8, + pub r#unknown35: u8, + pub r#unknown36: u8, + pub r#unknown37: u8, + pub r#unknown38: u8, + pub r#unknown39: u8, + pub r#unknown40: u8, + pub r#unknown41: u8, + pub r#unknown42: u8, + pub r#unknown43: u8, + pub r#unknown44: u8, + pub r#unknown45: u8, + pub r#unknown46: u8, + pub r#unknown47: u8, + pub r#unknown48: u32, + pub r#unknown49: u32, + pub r#unknown50: u32, + pub r#unknown51: u32, + pub r#unknown52: u32, + pub r#unknown53: u32, + pub r#unknown54: u32, + pub r#unknown55: u32, + pub r#unknown56: u32, + pub r#unknown57: u32, + pub r#unknown58: u32, + pub r#unknown59: u32, + pub r#unknown60: u32, + pub r#unknown61: u32, + pub r#unknown62: u32, + pub r#unknown63: u32, + pub r#unknown64: u32, + pub r#unknown65: u32, + pub r#unknown66: u32, + pub r#unknown67: u32, + pub r#unknown68: u32, + pub r#unknown69: u32, + pub r#unknown70: u32, + pub r#unknown71: u32, + pub r#unknown72: u32, + pub r#unknown73: u32, + pub r#unknown74: u32, + pub r#unknown75: u32, + pub r#unknown76: u32, + pub r#unknown77: u32, + pub r#unknown78: u32, + pub r#unknown79: u32, + pub r#unknown80: u32, + pub r#unknown81: u32, + pub r#unknown82: u32, + pub r#unknown83: u32, + pub r#unknown84: u32, + pub r#unknown85: u32, + pub r#unknown86: u32, + pub r#unknown87: u32, + pub r#unknown88: u32, + pub r#unknown89: u32, + pub r#unknown90: u32, + pub r#unknown91: u32, + pub r#unknown92: u32, + pub r#unknown93: u32, + pub r#unknown94: u32, + pub r#unknown95: u32, + pub r#unknown96: u32, + pub r#unknown97: u32, + pub r#unknown98: u32, + pub r#unknown99: u32, + pub r#unknown100: u32, + pub r#unknown101: u32, + pub r#unknown102: u32, + pub r#unknown103: u32, + pub r#unknown104: u32, + pub r#unknown105: u32, + pub r#unknown106: u32, + pub r#unknown107: u32, + pub r#unknown108: u32, + pub r#unknown109: u32, + pub r#unknown110: u32, + pub r#unknown111: u32, + pub r#unknown112: u32, + pub r#unknown113: u32, + pub r#unknown114: u32, + pub r#unknown115: u32, + pub r#unknown116: u32, + pub r#unknown117: u32, + pub r#unknown118: u32, + pub r#unknown119: u32, + pub r#unknown120: u32, + pub r#unknown121: u32, + pub r#unknown122: u32, + pub r#unknown123: u32, + pub r#unknown124: u32, + pub r#unknown125: u32, + pub r#unknown126: u32, + pub r#unknown127: u32, + pub r#unknown128: u32, + pub r#unknown129: u32, + pub r#unknown130: u32, + pub r#unknown131: u32, + pub r#unknown132: u32, + pub r#unknown133: u32, + pub r#unknown134: u32, + pub r#unknown135: u32, + pub r#unknown136: u32, + pub r#unknown137: u32, + pub r#unknown138: u32, + pub r#unknown139: u32, + pub r#unknown140: u32, + pub r#unknown141: u32, + pub r#unknown142: u32, + pub r#unknown143: u32, + pub r#unknown144: u32, + pub r#unknown145: u32, + pub r#unknown146: u32, + pub r#unknown147: u32, + pub r#unknown148: u32, + pub r#unknown149: u32, + pub r#unknown150: u32, + pub r#unknown151: u32, + pub r#unknown152: u32, + pub r#unknown153: u32, + pub r#unknown154: u32, + pub r#unknown155: u32, + pub r#unknown156: u32, + pub r#unknown157: u32, + pub r#unknown158: u32, + pub r#unknown159: u32, + pub r#unknown160: u32, + pub r#unknown161: u32, + pub r#unknown162: u32, + pub r#unknown163: u32, + pub r#unknown164: u32, + pub r#unknown165: u32, + pub r#unknown166: u32, + pub r#unknown167: u32, + pub r#unknown168: u32, + pub r#unknown169: u32, + pub r#unknown170: u32, + pub r#unknown171: u32, + pub r#unknown172: u32, + pub r#unknown173: u32, + pub r#unknown174: u32, + pub r#unknown175: u32, + pub r#unknown176: u32, + pub r#unknown177: u32, + pub r#unknown178: u32, + pub r#unknown179: u32, + pub r#unknown180: u32, + pub r#unknown181: u32, + pub r#unknown182: u32, + pub r#unknown183: u32, + pub r#unknown184: u32, + pub r#unknown185: u32, + pub r#unknown186: u32, + pub r#unknown187: u32, + pub r#unknown188: u32, + pub r#unknown189: u32, + pub r#unknown190: u32, + pub r#unknown191: u32, + pub r#unknown192: u32, + pub r#unknown193: u32, + pub r#unknown194: u32, + pub r#unknown195: u32, + pub r#unknown196: u32, + pub r#unknown197: u32, + pub r#unknown198: u32, + pub r#unknown199: u32, + pub r#unknown200: u32, + pub r#unknown201: u32, + pub r#unknown202: u32, + pub r#unknown203: u32, + pub r#unknown204: u32, + pub r#unknown205: u32, + pub r#unknown206: u32, + pub r#unknown207: u32, + pub r#unknown208: u32, + pub r#unknown209: u32, + pub r#unknown210: u32, + pub r#unknown211: u32, + pub r#unknown212: u32, + pub r#unknown213: u32, + pub r#unknown214: u32, + pub r#unknown215: u32, + pub r#unknown216: u32, + pub r#unknown217: u32, + pub r#unknown218: u32, + pub r#unknown219: u32, + pub r#unknown220: u32, + pub r#unknown221: u32, + pub r#unknown222: u32, + pub r#unknown223: u32, + pub r#unknown224: u32, + pub r#unknown225: u32, + pub r#unknown226: u32, + pub r#unknown227: u32, + pub r#unknown228: u32, + pub r#unknown229: u32, + pub r#unknown230: u32, + pub r#unknown231: u32, + pub r#unknown232: u32, + pub r#unknown233: u32, + pub r#unknown234: u32, + pub r#unknown235: u32, + pub r#unknown236: u32, + pub r#unknown237: u32, + pub r#unknown238: u32, + pub r#unknown239: u32, + pub r#unknown240: u32, + pub r#unknown241: u32, + pub r#unknown242: u32, + pub r#unknown243: u32, + pub r#unknown244: u32, + pub r#unknown245: u32, + pub r#unknown246: u32, + pub r#unknown247: u32, + pub r#unknown248: u32, + pub r#unknown249: u32, + pub r#unknown250: u32, + pub r#unknown251: u32, + pub r#unknown252: u32, + pub r#unknown253: u32, + pub r#unknown254: u32, + pub r#unknown255: u32, + pub r#unknown256: u32, + pub r#unknown257: u32, + pub r#unknown258: u32, + pub r#unknown259: u32, + pub r#unknown260: u32, + pub r#unknown261: u32, + pub r#unknown262: u32, + pub r#unknown263: u32, + pub r#unknown264: u32, + pub r#unknown265: u32, + pub r#unknown266: u32, + pub r#unknown267: u32, + pub r#unknown268: u32, + pub r#unknown269: u32, + pub r#unknown270: u32, + pub r#unknown271: u32, + pub r#unknown272: u32, + pub r#unknown273: u32, + pub r#unknown274: u32, + pub r#unknown275: u32, + pub r#unknown276: u32, + pub r#unknown277: u32, + pub r#unknown278: u32, + pub r#unknown279: u32, + pub r#unknown280: u32, + pub r#unknown281: u32, + pub r#unknown282: u32, + pub r#unknown283: u32, + pub r#unknown284: u32, + pub r#unknown285: u32, + pub r#unknown286: u32, + pub r#unknown287: u32, + pub r#unknown288: u32, + pub r#unknown289: u32, + pub r#unknown290: u32, + pub r#unknown291: u32, + pub r#unknown292: u32, + pub r#unknown293: u32, + pub r#unknown294: u32, + pub r#unknown295: u32, + pub r#unknown296: u32, + pub r#unknown297: u32, + pub r#unknown298: u32, + pub r#unknown299: u32, + pub r#unknown300: u32, + pub r#unknown301: u32, + pub r#unknown302: u32, + pub r#unknown303: u32, + pub r#unknown304: u32, + pub r#unknown305: u32, + pub r#unknown306: u32, + pub r#unknown307: u32, + pub r#unknown308: u32, + pub r#unknown309: u32, + pub r#unknown310: u32, + pub r#unknown311: u32, + pub r#unknown312: u32, + pub r#unknown313: u32, + pub r#unknown314: u32, + pub r#unknown315: u32, + pub r#unknown316: u32, + pub r#unknown317: u32, + pub r#unknown318: u32, + pub r#unknown319: u32, + pub r#unknown320: u32, + pub r#unknown321: u32, + pub r#unknown322: u32, + pub r#unknown323: u32, + pub r#unknown324: u32, + pub r#unknown325: u32, + pub r#unknown326: u32, + pub r#unknown327: u32, + pub r#unknown328: u32, + pub r#unknown329: u32, + pub r#unknown330: u32, + pub r#unknown331: u32, + pub r#unknown332: u32, + pub r#unknown333: u32, + pub r#unknown334: u32, + pub r#unknown335: u32, + pub r#unknown336: u32, + pub r#unknown337: u32, + pub r#unknown338: u32, + pub r#unknown339: u32, + pub r#unknown340: u32, + pub r#unknown341: u32, + pub r#unknown342: u32, + pub r#unknown343: u32, + pub r#unknown344: u32, + pub r#unknown345: u32, + pub r#unknown346: u32, + pub r#unknown347: u32, + pub r#unknown348: u32, + pub r#unknown349: u32, + pub r#unknown350: u32, + pub r#unknown351: u32, + pub r#unknown352: u32, + pub r#unknown353: u32, + pub r#unknown354: u32, + pub r#unknown355: u32, + pub r#unknown356: u32, + pub r#unknown357: u32, + pub r#unknown358: u32, + pub r#unknown359: u32, + pub r#unknown360: u32, + pub r#unknown361: u32, + pub r#unknown362: u32, + pub r#unknown363: u32, + pub r#unknown364: u32, + pub r#unknown365: u32, + pub r#unknown366: u32, + pub r#unknown367: u32, + pub r#unknown368: u32, + pub r#unknown369: u32, + pub r#unknown370: u32, + pub r#unknown371: u32, + pub r#unknown372: u32, + pub r#unknown373: u32, + pub r#unknown374: u32, + pub r#unknown375: u32, + pub r#unknown376: u32, + pub r#unknown377: u32, + pub r#unknown378: u32, + pub r#unknown379: u32, + pub r#unknown380: u32, + pub r#unknown381: u32, + pub r#unknown382: u32, + pub r#unknown383: u32, + pub r#unknown384: u32, + pub r#unknown385: u32, + pub r#unknown386: u32, + pub r#unknown387: u32, + pub r#unknown388: u32, + pub r#unknown389: u32, + pub r#unknown390: u32, + pub r#unknown391: u32, + pub r#unknown392: u32, + pub r#unknown393: u32, + pub r#unknown394: u32, + pub r#unknown395: u32, + pub r#unknown396: u32, + pub r#unknown397: u32, + pub r#unknown398: u32, + pub r#unknown399: u32, + pub r#unknown400: u32, + pub r#unknown401: u32, + pub r#unknown402: u32, + pub r#unknown403: u32, + pub r#unknown404: u32, + pub r#unknown405: u32, + pub r#unknown406: u32, + pub r#unknown407: u32, + pub r#unknown408: u32, + pub r#unknown409: u32, + pub r#unknown410: u32, + pub r#unknown411: u32, + pub r#unknown412: u32, + pub r#unknown413: u32, + pub r#unknown414: u32, + pub r#unknown415: u32, + pub r#unknown416: u32, + pub r#unknown417: u32, + pub r#unknown418: u32, + pub r#unknown419: u32, + pub r#unknown420: u32, + pub r#unknown421: u32, + pub r#unknown422: u32, + pub r#unknown423: u32, + pub r#unknown424: u32, + pub r#unknown425: u32, + pub r#unknown426: u32, + pub r#unknown427: u32, + pub r#unknown428: u32, + pub r#unknown429: u32, + pub r#unknown430: u32, + pub r#unknown431: u32, + pub r#unknown432: u32, + pub r#unknown433: u32, + pub r#unknown434: u32, + pub r#unknown435: u32, + pub r#unknown436: u32, + pub r#unknown437: u32, + pub r#unknown438: u32, + pub r#unknown439: u32, + pub r#unknown440: u32, + pub r#unknown441: u32, + pub r#unknown442: u32, + pub r#unknown443: u32, + pub r#unknown444: u32, + pub r#unknown445: u32, + pub r#unknown446: u32, + pub r#unknown447: u32, + pub r#unknown448: u32, + pub r#unknown449: u32, + pub r#unknown450: u32, + pub r#unknown451: u32, + pub r#unknown452: u32, + pub r#unknown453: u32, + pub r#unknown454: u32, + pub r#unknown455: u32, + pub r#unknown456: u32, + pub r#unknown457: u32, + pub r#unknown458: u32, + pub r#unknown459: u32, + pub r#unknown460: u32, + pub r#unknown461: u32, + pub r#unknown462: u32, + pub r#unknown463: u32, + pub r#unknown464: u32, + pub r#unknown465: u32, + pub r#unknown466: u32, + pub r#unknown467: u32, + pub r#unknown468: u32, + pub r#unknown469: u32, + pub r#unknown470: u32, + pub r#unknown471: u32, + pub r#unknown472: u32, + pub r#unknown473: u32, + pub r#unknown474: u32, + pub r#unknown475: u32, + pub r#unknown476: u32, + pub r#unknown477: u32, + pub r#unknown478: u32, + pub r#unknown479: u32, + pub r#unknown480: u32, + pub r#unknown481: u32, + pub r#unknown482: u32, + pub r#unknown483: u32, + pub r#unknown484: u32, + pub r#unknown485: u32, + pub r#unknown486: u32, + pub r#unknown487: u32, + pub r#unknown488: u32, + pub r#unknown489: u32, + pub r#unknown490: u32, + pub r#unknown491: u32, + pub r#unknown492: u32, + pub r#unknown493: u32, + pub r#unknown494: u32, + pub r#unknown495: u32, + pub r#unknown496: u32, + pub r#unknown497: u32, + pub r#unknown498: u32, + pub r#unknown499: u32, + pub r#unknown500: u32, + pub r#unknown501: u32, + pub r#unknown502: u32, + pub r#unknown503: u32, + pub r#unknown504: u32, + pub r#unknown505: u32, + pub r#unknown506: u32, + pub r#unknown507: u32, + pub r#unknown508: u32, + pub r#unknown509: u32, + pub r#unknown510: u32, + pub r#unknown511: u32, + pub r#unknown512: u32, + pub r#unknown513: u32, + pub r#unknown514: u32, + pub r#unknown515: u32, + pub r#unknown516: u32, + pub r#unknown517: u32, + pub r#unknown518: u32, + pub r#unknown519: u32, + pub r#unknown520: u32, + pub r#unknown521: u32, + pub r#unknown522: u32, + pub r#unknown523: u32, + pub r#unknown524: u32, + pub r#unknown525: u32, + pub r#unknown526: u32, + pub r#unknown527: u32, + pub r#unknown528: u32, + pub r#unknown529: u32, + pub r#unknown530: u32, + pub r#unknown531: u32, + pub r#unknown532: u32, + pub r#unknown533: u32, + pub r#unknown534: u32, + pub r#unknown535: u32, + pub r#unknown536: u32, + pub r#unknown537: u32, + pub r#unknown538: u32, + pub r#unknown539: u32, + pub r#unknown540: u32, + pub r#unknown541: u32, + pub r#unknown542: u32, + pub r#unknown543: u32, + pub r#unknown544: u32, + pub r#unknown545: u32, + pub r#unknown546: u32, + pub r#unknown547: u32, + pub r#unknown548: u32, + pub r#unknown549: u32, + pub r#unknown550: u32, + pub r#unknown551: u32, + pub r#unknown552: u32, + pub r#unknown553: u32, + pub r#unknown554: u32, + pub r#unknown555: u32, + pub r#unknown556: u32, + pub r#unknown557: u32, + pub r#unknown558: u32, + pub r#unknown559: u32, + pub r#unknown560: u32, + pub r#unknown561: u32, + pub r#unknown562: u32, + pub r#unknown563: u32, + pub r#unknown564: u32, + pub r#unknown565: u32, + pub r#unknown566: u32, + pub r#unknown567: u32, + pub r#unknown568: u32, + pub r#unknown569: u32, + pub r#unknown570: u32, + pub r#unknown571: u32, + pub r#unknown572: u32, + pub r#unknown573: u32, + pub r#unknown574: u32, + pub r#unknown575: u32, + pub r#unknown576: u32, + pub r#unknown577: u32, + pub r#unknown578: u32, + pub r#unknown579: u32, + pub r#unknown580: u32, + pub r#unknown581: u32, + pub r#unknown582: u32, + pub r#unknown583: u32, + pub r#unknown584: u32, + pub r#unknown585: u32, + pub r#unknown586: u32, + pub r#unknown587: u32, + pub r#unknown588: u32, + pub r#unknown589: u32, + pub r#unknown590: u32, + pub r#unknown591: u32, + pub r#unknown592: u32, + pub r#unknown593: u32, + pub r#unknown594: u32, + pub r#unknown595: u32, + pub r#unknown596: u32, + pub r#unknown597: u32, + pub r#unknown598: u32, + pub r#unknown599: u32, + pub r#unknown600: u32, + pub r#unknown601: u32, + pub r#unknown602: u32, + pub r#unknown603: u32, + pub r#unknown604: u32, + pub r#unknown605: u32, + pub r#unknown606: u32, + pub r#unknown607: u32, + pub r#unknown608: u32, + pub r#unknown609: u32, + pub r#unknown610: u32, + pub r#unknown611: u32, + pub r#unknown612: u32, + pub r#unknown613: u32, + pub r#unknown614: u32, + pub r#unknown615: u32, + pub r#unknown616: u32, + pub r#unknown617: u32, + pub r#unknown618: u32, + pub r#unknown619: u32, + pub r#unknown620: u32, + pub r#unknown621: u32, + pub r#unknown622: u32, + pub r#unknown623: u32, + pub r#unknown624: u32, + pub r#unknown625: u32, + pub r#unknown626: u32, + pub r#unknown627: u32, + pub r#unknown628: u32, + pub r#unknown629: u32, + pub r#unknown630: u32, + pub r#unknown631: u32, + pub r#unknown632: u32, + pub r#unknown633: u32, + pub r#unknown634: u32, + pub r#unknown635: u32, + pub r#unknown636: u32, + pub r#unknown637: u32, + pub r#unknown638: u32, + pub r#unknown639: u32, + pub r#unknown640: u32, + pub r#unknown641: u32, + pub r#unknown642: u32, + pub r#unknown643: u32, + pub r#unknown644: u32, + pub r#unknown645: u32, + pub r#unknown646: u32, + pub r#unknown647: u32, + pub r#unknown648: u32, + pub r#unknown649: u32, + pub r#unknown650: u32, + pub r#unknown651: u32, + pub r#unknown652: u32, + pub r#unknown653: u32, + pub r#unknown654: u32, + pub r#unknown655: u32, + pub r#unknown656: u32, + pub r#unknown657: u32, + pub r#unknown658: u32, + pub r#unknown659: u32, + pub r#unknown660: u32, + pub r#unknown661: u32, + pub r#unknown662: u32, + pub r#unknown663: u32, + pub r#unknown664: u32, + pub r#unknown665: u32, + pub r#unknown666: u32, + pub r#unknown667: u32, + pub r#unknown668: u32, + pub r#unknown669: u32, + pub r#unknown670: u32, + pub r#unknown671: u32, + pub r#unknown672: u32, + pub r#unknown673: u32, + pub r#unknown674: u32, + pub r#unknown675: u32, + pub r#unknown676: u32, + pub r#unknown677: u32, + pub r#unknown678: u32, + pub r#unknown679: u32, + pub r#unknown680: u32, + pub r#unknown681: u32, + pub r#unknown682: u32, + pub r#unknown683: u32, + pub r#unknown684: u32, + pub r#unknown685: u32, + pub r#unknown686: u32, + pub r#unknown687: u32, + pub r#unknown688: u32, + pub r#unknown689: u32, + pub r#unknown690: u32, + pub r#unknown691: u32, + pub r#unknown692: u32, + pub r#unknown693: u32, + pub r#unknown694: u32, + pub r#unknown695: u32, + pub r#unknown696: u32, + pub r#unknown697: u32, + pub r#unknown698: u32, + pub r#unknown699: u32, + pub r#unknown700: u32, + pub r#unknown701: u32, + pub r#unknown702: u32, + pub r#unknown703: u32, + pub r#unknown704: u32, + pub r#unknown705: u32, + pub r#unknown706: u32, + pub r#unknown707: u32, + pub r#unknown708: u32, + pub r#unknown709: u32, + pub r#unknown710: u32, + pub r#unknown711: u32, + pub r#unknown712: u32, + pub r#unknown713: u32, + pub r#unknown714: u32, + pub r#unknown715: u32, + pub r#unknown716: u32, + pub r#unknown717: u32, + pub r#unknown718: u32, + pub r#unknown719: u32, + pub r#unknown720: u32, + pub r#unknown721: u32, + pub r#unknown722: u32, + pub r#unknown723: u32, + pub r#unknown724: u32, + pub r#unknown725: u32, + pub r#unknown726: u32, + pub r#unknown727: u32, + pub r#unknown728: u32, + pub r#unknown729: u32, + pub r#unknown730: u32, + pub r#unknown731: u32, + pub r#unknown732: u32, + pub r#unknown733: u32, + pub r#unknown734: u32, + pub r#unknown735: u32, + pub r#unknown736: u32, + pub r#unknown737: u32, + pub r#unknown738: u32, + pub r#unknown739: u32, + pub r#unknown740: u32, + pub r#unknown741: u32, + pub r#unknown742: u32, + pub r#unknown743: u32, + pub r#unknown744: u32, + pub r#unknown745: u32, + pub r#unknown746: u32, + pub r#unknown747: u32, + pub r#unknown748: u32, + pub r#unknown749: u32, + pub r#unknown750: u32, + pub r#unknown751: u32, + pub r#unknown752: u32, + pub r#unknown753: u32, + pub r#unknown754: u32, + pub r#unknown755: u32, + pub r#unknown756: u32, + pub r#unknown757: u32, + pub r#unknown758: u32, + pub r#unknown759: u32, + pub r#unknown760: u32, + pub r#unknown761: u32, + pub r#unknown762: u32, + pub r#unknown763: u32, + pub r#unknown764: u32, + pub r#unknown765: u32, + pub r#unknown766: u32, + pub r#unknown767: u32, + pub r#unknown768: u32, + pub r#unknown769: u32, + pub r#unknown770: u32, + pub r#unknown771: u32, + pub r#unknown772: u32, + pub r#unknown773: u32, + pub r#unknown774: u32, + pub r#unknown775: u32, + pub r#unknown776: u32, + pub r#unknown777: u32, + pub r#unknown778: u32, + pub r#unknown779: u32, + pub r#unknown780: u32, + pub r#unknown781: u32, + pub r#unknown782: u32, + pub r#unknown783: u32, + pub r#unknown784: u32, + pub r#unknown785: u32, + pub r#unknown786: u32, + pub r#unknown787: u32, + pub r#unknown788: u32, + pub r#unknown789: u32, + pub r#unknown790: u32, + pub r#unknown791: u32, + pub r#unknown792: u32, + pub r#unknown793: u32, + pub r#unknown794: u32, + pub r#unknown795: u32, + pub r#unknown796: u32, + pub r#unknown797: u32, + pub r#unknown798: u32, + pub r#unknown799: u32, + pub r#unknown800: u32, + pub r#unknown801: u32, + pub r#unknown802: u32, + pub r#unknown803: u32, + pub r#unknown804: u32, + pub r#unknown805: u32, + pub r#unknown806: u32, + pub r#unknown807: u32, + pub r#unknown808: u32, + pub r#unknown809: u32, + pub r#unknown810: u32, + pub r#unknown811: u32, + pub r#unknown812: u32, + pub r#unknown813: u32, + pub r#unknown814: u32, + pub r#unknown815: u32, + pub r#unknown816: u32, + pub r#unknown817: u32, + pub r#unknown818: u32, + pub r#unknown819: u32, + pub r#unknown820: u32, + pub r#unknown821: u32, + pub r#unknown822: u32, + pub r#unknown823: u32, + pub r#unknown824: u32, + pub r#unknown825: u32, + pub r#unknown826: u32, + pub r#unknown827: u32, + pub r#unknown828: u32, + pub r#unknown829: u32, + pub r#unknown830: u32, + pub r#unknown831: u32, + pub r#unknown832: u32, + pub r#unknown833: u32, + pub r#unknown834: u32, + pub r#unknown835: u32, + pub r#unknown836: u32, + pub r#unknown837: u32, + pub r#unknown838: u32, + pub r#unknown839: u32, + pub r#unknown840: u32, + pub r#unknown841: u32, + pub r#unknown842: u32, + pub r#unknown843: u32, + pub r#unknown844: u32, + pub r#unknown845: u32, + pub r#unknown846: u32, + pub r#unknown847: u32, + pub r#unknown848: u32, + pub r#unknown849: u32, + pub r#unknown850: u32, + pub r#unknown851: u32, + pub r#unknown852: u32, + pub r#unknown853: u32, + pub r#unknown854: u32, + pub r#unknown855: u32, + pub r#unknown856: u32, + pub r#unknown857: u32, + pub r#unknown858: u32, + pub r#unknown859: u32, + pub r#unknown860: u32, + pub r#unknown861: u32, + pub r#unknown862: u32, + pub r#unknown863: u32, + pub r#unknown864: u32, + pub r#unknown865: u32, + pub r#unknown866: u32, + pub r#unknown867: u32, + pub r#unknown868: u32, + pub r#unknown869: u32, + pub r#unknown870: u32, + pub r#unknown871: u32, + pub r#unknown872: u32, + pub r#unknown873: u32, + pub r#unknown874: u32, + pub r#unknown875: u32, + pub r#unknown876: u32, + pub r#unknown877: u32, + pub r#unknown878: u32, + pub r#unknown879: u32, + pub r#unknown880: u32, + pub r#unknown881: u32, + pub r#unknown882: u32, + pub r#unknown883: u32, + pub r#unknown884: u32, + pub r#unknown885: u32, + pub r#unknown886: u32, + pub r#unknown887: u32, + pub r#unknown888: u32, + pub r#unknown889: u32, + pub r#unknown890: u32, + pub r#unknown891: u32, + pub r#unknown892: u32, + pub r#unknown893: u32, + pub r#unknown894: u32, + pub r#unknown895: u32, + pub r#unknown896: u32, + pub r#unknown897: u32, + pub r#unknown898: u32, + pub r#unknown899: u32, + pub r#unknown900: u32, + pub r#unknown901: u32, + pub r#unknown902: u32, + pub r#unknown903: u32, + pub r#unknown904: u32, + pub r#unknown905: u32, + pub r#unknown906: u32, + pub r#unknown907: u32, + pub r#unknown908: u32, + pub r#unknown909: u32, + pub r#unknown910: u32, + pub r#unknown911: u32, + pub r#unknown912: u32, + pub r#unknown913: u32, + pub r#unknown914: u32, + pub r#unknown915: u32, + pub r#unknown916: u32, + pub r#unknown917: u32, + pub r#unknown918: u32, + pub r#unknown919: u32, + pub r#unknown920: u32, + pub r#unknown921: u32, + pub r#unknown922: u32, + pub r#unknown923: u32, + pub r#unknown924: u32, + pub r#unknown925: u32, + pub r#unknown926: u32, + pub r#unknown927: u32, + pub r#unknown928: u32, + pub r#unknown929: u32, + pub r#unknown930: u32, + pub r#unknown931: u32, + pub r#unknown932: u32, + pub r#unknown933: u32, + pub r#unknown934: u32, + pub r#unknown935: u32, + pub r#unknown936: u32, + pub r#unknown937: u32, + pub r#unknown938: u32, + pub r#unknown939: u32, + pub r#unknown940: u32, + pub r#unknown941: u32, + pub r#unknown942: u32, + pub r#unknown943: u32, + pub r#unknown944: u32, + pub r#unknown945: u32, + pub r#unknown946: u32, + pub r#unknown947: u32, + pub r#unknown948: u32, + pub r#unknown949: u32, + pub r#unknown950: u32, + pub r#unknown951: u32, + pub r#unknown952: u32, + pub r#unknown953: u32, + pub r#unknown954: u32, + pub r#unknown955: u32, + pub r#unknown956: u32, + pub r#unknown957: u32, + pub r#unknown958: u32, + pub r#unknown959: u32, + pub r#unknown960: u32, + pub r#unknown961: u32, + pub r#unknown962: u32, + pub r#unknown963: u32, + pub r#unknown964: u32, + pub r#unknown965: u32, + pub r#unknown966: u32, + pub r#unknown967: u32, + pub r#unknown968: u32, + pub r#unknown969: u32, + pub r#unknown970: u32, + pub r#unknown971: u32, + pub r#unknown972: u32, + pub r#unknown973: u32, + pub r#unknown974: u32, + pub r#unknown975: u32, + pub r#unknown976: u32, + pub r#unknown977: u32, + pub r#unknown978: u32, + pub r#unknown979: u32, + pub r#unknown980: u32, + pub r#unknown981: u32, + pub r#unknown982: u32, + pub r#unknown983: u32, + pub r#unknown984: u32, + pub r#unknown985: u32, + pub r#unknown986: u32, + pub r#unknown987: u32, + pub r#unknown988: u32, + pub r#unknown989: u32, + pub r#unknown990: u32, + pub r#unknown991: u32, + pub r#unknown992: u32, + pub r#unknown993: u32, + pub r#unknown994: u32, + pub r#unknown995: u32, + pub r#unknown996: u32, + pub r#unknown997: u32, + pub r#unknown998: u32, + pub r#unknown999: u32, + pub r#unknown1000: u32, + pub r#unknown1001: u32, + pub r#unknown1002: u32, + pub r#unknown1003: u32, + pub r#unknown1004: u32, + pub r#unknown1005: u32, + pub r#unknown1006: u32, + pub r#unknown1007: u32, + pub r#unknown1008: u32, + pub r#unknown1009: u32, + pub r#unknown1010: u32, + pub r#unknown1011: u32, + pub r#unknown1012: u32, + pub r#unknown1013: u32, + pub r#unknown1014: u32, + pub r#unknown1015: u32, + pub r#unknown1016: u32, + pub r#unknown1017: u32, + pub r#unknown1018: u32, + pub r#unknown1019: u32, + pub r#unknown1020: u8, + pub r#unknown1021: u8, + pub r#unknown1022: u8, + pub r#unknown1023: u8, + pub r#unknown1024: u8, + pub r#unknown1025: u8, + pub r#unknown1026: u8, + pub r#unknown1027: u8, + pub r#unknown1028: u8, + pub r#unknown1029: u8, + pub r#unknown1030: u8, + pub r#unknown1031: u8, + pub r#unknown1032: u8, + pub r#unknown1033: u8, + pub r#unknown1034: u8, + pub r#unknown1035: u8, + pub r#unknown1036: u8, + pub r#unknown1037: u8, + pub r#unknown1038: u8, + pub r#unknown1039: u8, + pub r#unknown1040: u8, + pub r#unknown1041: u8, + pub r#unknown1042: u8, + pub r#unknown1043: u8, + pub r#unknown1044: u8, + pub r#unknown1045: u8, + pub r#unknown1046: u8, + pub r#unknown1047: u8, + pub r#unknown1048: u8, + pub r#unknown1049: u8, + pub r#unknown1050: u8, + pub r#unknown1051: u8, + pub r#unknown1052: u8, + pub r#unknown1053: u8, + pub r#unknown1054: u8, + pub r#unknown1055: u8, + pub r#unknown1056: u8, + pub r#unknown1057: u8, + pub r#unknown1058: u8, + pub r#unknown1059: u8, + pub r#unknown1060: u8, + pub r#unknown1061: u8, + pub r#unknown1062: u8, + pub r#unknown1063: u8, + pub r#unknown1064: u8, + pub r#unknown1065: u8, + pub r#unknown1066: u8, + pub r#unknown1067: u8, + pub r#unknown1068: u8, + pub r#unknown1069: u8, + pub r#unknown1070: u8, + pub r#unknown1071: u8, + pub r#unknown1072: u8, + pub r#unknown1073: u8, + pub r#unknown1074: u8, + pub r#unknown1075: u8, + pub r#unknown1076: u8, + pub r#unknown1077: u8, + pub r#unknown1078: u8, + pub r#unknown1079: u8, + pub r#unknown1080: u8, + pub r#unknown1081: u8, + pub r#unknown1082: u8, + pub r#unknown1083: u8, + pub r#unknown1084: u8, + pub r#unknown1085: u8, + pub r#unknown1086: u8, + pub r#unknown1087: u8, + pub r#unknown1088: u8, + pub r#unknown1089: u8, + pub r#unknown1090: u8, + pub r#unknown1091: u8, + pub r#unknown1092: u8, + pub r#unknown1093: u8, + pub r#unknown1094: u8, + pub r#unknown1095: u8, + pub r#unknown1096: u8, + pub r#unknown1097: u8, + pub r#unknown1098: u8, + pub r#unknown1099: u8, + pub r#unknown1100: u8, + pub r#unknown1101: u8, + pub r#unknown1102: u8, + pub r#unknown1103: u8, + pub r#unknown1104: u8, + pub r#unknown1105: u8, + pub r#unknown1106: u8, + pub r#unknown1107: u8, + pub r#unknown1108: u8, + pub r#unknown1109: u8, + pub r#unknown1110: i32, + pub r#unknown1111: i32, + pub r#unknown1112: i32, + pub r#unknown1113: i32, + pub r#unknown1114: i32, + pub r#unknown1115: i32, + pub r#unknown1116: i32, + pub r#unknown1117: i32, + pub r#unknown1118: i32, + pub r#unknown1119: i32, + pub r#unknown1120: i32, + pub r#unknown1121: i32, + pub r#unknown1122: i32, + pub r#unknown1123: i32, + pub r#unknown1124: i32, + pub r#unknown1125: i32, + pub r#unknown1126: i32, + pub r#unknown1127: i32, + pub r#unknown1128: i32, + pub r#unknown1129: i32, + pub r#unknown1130: i32, + pub r#unknown1131: i32, + pub r#unknown1132: i32, + pub r#unknown1133: i32, + pub r#unknown1134: i32, + pub r#unknown1135: i32, + pub r#unknown1136: i32, + pub r#unknown1137: i32, + pub r#unknown1138: i32, + pub r#unknown1139: i32, + pub r#unknown1140: i32, + pub r#unknown1141: i32, + pub r#unknown1142: i32, + pub r#unknown1143: i32, + pub r#unknown1144: i32, + pub r#unknown1145: i32, + pub r#unknown1146: i32, + pub r#unknown1147: i32, + pub r#unknown1148: i32, + pub r#unknown1149: i32, + pub r#unknown1150: i32, + pub r#unknown1151: i32, + pub r#unknown1152: i32, + pub r#unknown1153: i32, + pub r#unknown1154: i32, + pub r#unknown1155: i32, + pub r#unknown1156: i32, + pub r#unknown1157: i32, + pub r#unknown1158: i32, + pub r#unknown1159: i32, + pub r#unknown1160: i32, + pub r#unknown1161: i32, + pub r#unknown1162: i32, + pub r#unknown1163: i32, + pub r#unknown1164: i32, + pub r#unknown1165: i32, } impl HairMakeType { pub fn populate(row: &Row, offset: usize) -> Result { @@ -23,6 +1186,1169 @@ impl HairMakeType { r#race: row.field(0usize + offset)?.into_i32()?, r#tribe: row.field(1usize + offset)?.into_i32()?, r#gender: row.field(2usize + offset)?.into_i8()?, + r#unknown3: row.field(3usize + offset)?.into_u32()?, + r#unknown4: row.field(4usize + offset)?.into_u32()?, + r#unknown5: row.field(5usize + offset)?.into_u32()?, + r#unknown6: row.field(6usize + offset)?.into_u32()?, + r#unknown7: row.field(7usize + offset)?.into_u32()?, + r#unknown8: row.field(8usize + offset)?.into_u32()?, + r#unknown9: row.field(9usize + offset)?.into_u32()?, + r#unknown10: row.field(10usize + offset)?.into_u32()?, + r#unknown11: row.field(11usize + offset)?.into_u32()?, + r#unknown12: row.field(12usize + offset)?.into_u8()?, + r#unknown13: row.field(13usize + offset)?.into_u8()?, + r#unknown14: row.field(14usize + offset)?.into_u8()?, + r#unknown15: row.field(15usize + offset)?.into_u8()?, + r#unknown16: row.field(16usize + offset)?.into_u8()?, + r#unknown17: row.field(17usize + offset)?.into_u8()?, + r#unknown18: row.field(18usize + offset)?.into_u8()?, + r#unknown19: row.field(19usize + offset)?.into_u8()?, + r#unknown20: row.field(20usize + offset)?.into_u8()?, + r#unknown21: row.field(21usize + offset)?.into_u8()?, + r#unknown22: row.field(22usize + offset)?.into_u8()?, + r#unknown23: row.field(23usize + offset)?.into_u8()?, + r#unknown24: row.field(24usize + offset)?.into_u8()?, + r#unknown25: row.field(25usize + offset)?.into_u8()?, + r#unknown26: row.field(26usize + offset)?.into_u8()?, + r#unknown27: row.field(27usize + offset)?.into_u8()?, + r#unknown28: row.field(28usize + offset)?.into_u8()?, + r#unknown29: row.field(29usize + offset)?.into_u8()?, + r#unknown30: row.field(30usize + offset)?.into_u8()?, + r#unknown31: row.field(31usize + offset)?.into_u8()?, + r#unknown32: row.field(32usize + offset)?.into_u8()?, + r#unknown33: row.field(33usize + offset)?.into_u8()?, + r#unknown34: row.field(34usize + offset)?.into_u8()?, + r#unknown35: row.field(35usize + offset)?.into_u8()?, + r#unknown36: row.field(36usize + offset)?.into_u8()?, + r#unknown37: row.field(37usize + offset)?.into_u8()?, + r#unknown38: row.field(38usize + offset)?.into_u8()?, + r#unknown39: row.field(39usize + offset)?.into_u8()?, + r#unknown40: row.field(40usize + offset)?.into_u8()?, + r#unknown41: row.field(41usize + offset)?.into_u8()?, + r#unknown42: row.field(42usize + offset)?.into_u8()?, + r#unknown43: row.field(43usize + offset)?.into_u8()?, + r#unknown44: row.field(44usize + offset)?.into_u8()?, + r#unknown45: row.field(45usize + offset)?.into_u8()?, + r#unknown46: row.field(46usize + offset)?.into_u8()?, + r#unknown47: row.field(47usize + offset)?.into_u8()?, + r#unknown48: row.field(48usize + offset)?.into_u32()?, + r#unknown49: row.field(49usize + offset)?.into_u32()?, + r#unknown50: row.field(50usize + offset)?.into_u32()?, + r#unknown51: row.field(51usize + offset)?.into_u32()?, + r#unknown52: row.field(52usize + offset)?.into_u32()?, + r#unknown53: row.field(53usize + offset)?.into_u32()?, + r#unknown54: row.field(54usize + offset)?.into_u32()?, + r#unknown55: row.field(55usize + offset)?.into_u32()?, + r#unknown56: row.field(56usize + offset)?.into_u32()?, + r#unknown57: row.field(57usize + offset)?.into_u32()?, + r#unknown58: row.field(58usize + offset)?.into_u32()?, + r#unknown59: row.field(59usize + offset)?.into_u32()?, + r#unknown60: row.field(60usize + offset)?.into_u32()?, + r#unknown61: row.field(61usize + offset)?.into_u32()?, + r#unknown62: row.field(62usize + offset)?.into_u32()?, + r#unknown63: row.field(63usize + offset)?.into_u32()?, + r#unknown64: row.field(64usize + offset)?.into_u32()?, + r#unknown65: row.field(65usize + offset)?.into_u32()?, + r#unknown66: row.field(66usize + offset)?.into_u32()?, + r#unknown67: row.field(67usize + offset)?.into_u32()?, + r#unknown68: row.field(68usize + offset)?.into_u32()?, + r#unknown69: row.field(69usize + offset)?.into_u32()?, + r#unknown70: row.field(70usize + offset)?.into_u32()?, + r#unknown71: row.field(71usize + offset)?.into_u32()?, + r#unknown72: row.field(72usize + offset)?.into_u32()?, + r#unknown73: row.field(73usize + offset)?.into_u32()?, + r#unknown74: row.field(74usize + offset)?.into_u32()?, + r#unknown75: row.field(75usize + offset)?.into_u32()?, + r#unknown76: row.field(76usize + offset)?.into_u32()?, + r#unknown77: row.field(77usize + offset)?.into_u32()?, + r#unknown78: row.field(78usize + offset)?.into_u32()?, + r#unknown79: row.field(79usize + offset)?.into_u32()?, + r#unknown80: row.field(80usize + offset)?.into_u32()?, + r#unknown81: row.field(81usize + offset)?.into_u32()?, + r#unknown82: row.field(82usize + offset)?.into_u32()?, + r#unknown83: row.field(83usize + offset)?.into_u32()?, + r#unknown84: row.field(84usize + offset)?.into_u32()?, + r#unknown85: row.field(85usize + offset)?.into_u32()?, + r#unknown86: row.field(86usize + offset)?.into_u32()?, + r#unknown87: row.field(87usize + offset)?.into_u32()?, + r#unknown88: row.field(88usize + offset)?.into_u32()?, + r#unknown89: row.field(89usize + offset)?.into_u32()?, + r#unknown90: row.field(90usize + offset)?.into_u32()?, + r#unknown91: row.field(91usize + offset)?.into_u32()?, + r#unknown92: row.field(92usize + offset)?.into_u32()?, + r#unknown93: row.field(93usize + offset)?.into_u32()?, + r#unknown94: row.field(94usize + offset)?.into_u32()?, + r#unknown95: row.field(95usize + offset)?.into_u32()?, + r#unknown96: row.field(96usize + offset)?.into_u32()?, + r#unknown97: row.field(97usize + offset)?.into_u32()?, + r#unknown98: row.field(98usize + offset)?.into_u32()?, + r#unknown99: row.field(99usize + offset)?.into_u32()?, + r#unknown100: row.field(100usize + offset)?.into_u32()?, + r#unknown101: row.field(101usize + offset)?.into_u32()?, + r#unknown102: row.field(102usize + offset)?.into_u32()?, + r#unknown103: row.field(103usize + offset)?.into_u32()?, + r#unknown104: row.field(104usize + offset)?.into_u32()?, + r#unknown105: row.field(105usize + offset)?.into_u32()?, + r#unknown106: row.field(106usize + offset)?.into_u32()?, + r#unknown107: row.field(107usize + offset)?.into_u32()?, + r#unknown108: row.field(108usize + offset)?.into_u32()?, + r#unknown109: row.field(109usize + offset)?.into_u32()?, + r#unknown110: row.field(110usize + offset)?.into_u32()?, + r#unknown111: row.field(111usize + offset)?.into_u32()?, + r#unknown112: row.field(112usize + offset)?.into_u32()?, + r#unknown113: row.field(113usize + offset)?.into_u32()?, + r#unknown114: row.field(114usize + offset)?.into_u32()?, + r#unknown115: row.field(115usize + offset)?.into_u32()?, + r#unknown116: row.field(116usize + offset)?.into_u32()?, + r#unknown117: row.field(117usize + offset)?.into_u32()?, + r#unknown118: row.field(118usize + offset)?.into_u32()?, + r#unknown119: row.field(119usize + offset)?.into_u32()?, + r#unknown120: row.field(120usize + offset)?.into_u32()?, + r#unknown121: row.field(121usize + offset)?.into_u32()?, + r#unknown122: row.field(122usize + offset)?.into_u32()?, + r#unknown123: row.field(123usize + offset)?.into_u32()?, + r#unknown124: row.field(124usize + offset)?.into_u32()?, + r#unknown125: row.field(125usize + offset)?.into_u32()?, + r#unknown126: row.field(126usize + offset)?.into_u32()?, + r#unknown127: row.field(127usize + offset)?.into_u32()?, + r#unknown128: row.field(128usize + offset)?.into_u32()?, + r#unknown129: row.field(129usize + offset)?.into_u32()?, + r#unknown130: row.field(130usize + offset)?.into_u32()?, + r#unknown131: row.field(131usize + offset)?.into_u32()?, + r#unknown132: row.field(132usize + offset)?.into_u32()?, + r#unknown133: row.field(133usize + offset)?.into_u32()?, + r#unknown134: row.field(134usize + offset)?.into_u32()?, + r#unknown135: row.field(135usize + offset)?.into_u32()?, + r#unknown136: row.field(136usize + offset)?.into_u32()?, + r#unknown137: row.field(137usize + offset)?.into_u32()?, + r#unknown138: row.field(138usize + offset)?.into_u32()?, + r#unknown139: row.field(139usize + offset)?.into_u32()?, + r#unknown140: row.field(140usize + offset)?.into_u32()?, + r#unknown141: row.field(141usize + offset)?.into_u32()?, + r#unknown142: row.field(142usize + offset)?.into_u32()?, + r#unknown143: row.field(143usize + offset)?.into_u32()?, + r#unknown144: row.field(144usize + offset)?.into_u32()?, + r#unknown145: row.field(145usize + offset)?.into_u32()?, + r#unknown146: row.field(146usize + offset)?.into_u32()?, + r#unknown147: row.field(147usize + offset)?.into_u32()?, + r#unknown148: row.field(148usize + offset)?.into_u32()?, + r#unknown149: row.field(149usize + offset)?.into_u32()?, + r#unknown150: row.field(150usize + offset)?.into_u32()?, + r#unknown151: row.field(151usize + offset)?.into_u32()?, + r#unknown152: row.field(152usize + offset)?.into_u32()?, + r#unknown153: row.field(153usize + offset)?.into_u32()?, + r#unknown154: row.field(154usize + offset)?.into_u32()?, + r#unknown155: row.field(155usize + offset)?.into_u32()?, + r#unknown156: row.field(156usize + offset)?.into_u32()?, + r#unknown157: row.field(157usize + offset)?.into_u32()?, + r#unknown158: row.field(158usize + offset)?.into_u32()?, + r#unknown159: row.field(159usize + offset)?.into_u32()?, + r#unknown160: row.field(160usize + offset)?.into_u32()?, + r#unknown161: row.field(161usize + offset)?.into_u32()?, + r#unknown162: row.field(162usize + offset)?.into_u32()?, + r#unknown163: row.field(163usize + offset)?.into_u32()?, + r#unknown164: row.field(164usize + offset)?.into_u32()?, + r#unknown165: row.field(165usize + offset)?.into_u32()?, + r#unknown166: row.field(166usize + offset)?.into_u32()?, + r#unknown167: row.field(167usize + offset)?.into_u32()?, + r#unknown168: row.field(168usize + offset)?.into_u32()?, + r#unknown169: row.field(169usize + offset)?.into_u32()?, + r#unknown170: row.field(170usize + offset)?.into_u32()?, + r#unknown171: row.field(171usize + offset)?.into_u32()?, + r#unknown172: row.field(172usize + offset)?.into_u32()?, + r#unknown173: row.field(173usize + offset)?.into_u32()?, + r#unknown174: row.field(174usize + offset)?.into_u32()?, + r#unknown175: row.field(175usize + offset)?.into_u32()?, + r#unknown176: row.field(176usize + offset)?.into_u32()?, + r#unknown177: row.field(177usize + offset)?.into_u32()?, + r#unknown178: row.field(178usize + offset)?.into_u32()?, + r#unknown179: row.field(179usize + offset)?.into_u32()?, + r#unknown180: row.field(180usize + offset)?.into_u32()?, + r#unknown181: row.field(181usize + offset)?.into_u32()?, + r#unknown182: row.field(182usize + offset)?.into_u32()?, + r#unknown183: row.field(183usize + offset)?.into_u32()?, + r#unknown184: row.field(184usize + offset)?.into_u32()?, + r#unknown185: row.field(185usize + offset)?.into_u32()?, + r#unknown186: row.field(186usize + offset)?.into_u32()?, + r#unknown187: row.field(187usize + offset)?.into_u32()?, + r#unknown188: row.field(188usize + offset)?.into_u32()?, + r#unknown189: row.field(189usize + offset)?.into_u32()?, + r#unknown190: row.field(190usize + offset)?.into_u32()?, + r#unknown191: row.field(191usize + offset)?.into_u32()?, + r#unknown192: row.field(192usize + offset)?.into_u32()?, + r#unknown193: row.field(193usize + offset)?.into_u32()?, + r#unknown194: row.field(194usize + offset)?.into_u32()?, + r#unknown195: row.field(195usize + offset)?.into_u32()?, + r#unknown196: row.field(196usize + offset)?.into_u32()?, + r#unknown197: row.field(197usize + offset)?.into_u32()?, + r#unknown198: row.field(198usize + offset)?.into_u32()?, + r#unknown199: row.field(199usize + offset)?.into_u32()?, + r#unknown200: row.field(200usize + offset)?.into_u32()?, + r#unknown201: row.field(201usize + offset)?.into_u32()?, + r#unknown202: row.field(202usize + offset)?.into_u32()?, + r#unknown203: row.field(203usize + offset)?.into_u32()?, + r#unknown204: row.field(204usize + offset)?.into_u32()?, + r#unknown205: row.field(205usize + offset)?.into_u32()?, + r#unknown206: row.field(206usize + offset)?.into_u32()?, + r#unknown207: row.field(207usize + offset)?.into_u32()?, + r#unknown208: row.field(208usize + offset)?.into_u32()?, + r#unknown209: row.field(209usize + offset)?.into_u32()?, + r#unknown210: row.field(210usize + offset)?.into_u32()?, + r#unknown211: row.field(211usize + offset)?.into_u32()?, + r#unknown212: row.field(212usize + offset)?.into_u32()?, + r#unknown213: row.field(213usize + offset)?.into_u32()?, + r#unknown214: row.field(214usize + offset)?.into_u32()?, + r#unknown215: row.field(215usize + offset)?.into_u32()?, + r#unknown216: row.field(216usize + offset)?.into_u32()?, + r#unknown217: row.field(217usize + offset)?.into_u32()?, + r#unknown218: row.field(218usize + offset)?.into_u32()?, + r#unknown219: row.field(219usize + offset)?.into_u32()?, + r#unknown220: row.field(220usize + offset)?.into_u32()?, + r#unknown221: row.field(221usize + offset)?.into_u32()?, + r#unknown222: row.field(222usize + offset)?.into_u32()?, + r#unknown223: row.field(223usize + offset)?.into_u32()?, + r#unknown224: row.field(224usize + offset)?.into_u32()?, + r#unknown225: row.field(225usize + offset)?.into_u32()?, + r#unknown226: row.field(226usize + offset)?.into_u32()?, + r#unknown227: row.field(227usize + offset)?.into_u32()?, + r#unknown228: row.field(228usize + offset)?.into_u32()?, + r#unknown229: row.field(229usize + offset)?.into_u32()?, + r#unknown230: row.field(230usize + offset)?.into_u32()?, + r#unknown231: row.field(231usize + offset)?.into_u32()?, + r#unknown232: row.field(232usize + offset)?.into_u32()?, + r#unknown233: row.field(233usize + offset)?.into_u32()?, + r#unknown234: row.field(234usize + offset)?.into_u32()?, + r#unknown235: row.field(235usize + offset)?.into_u32()?, + r#unknown236: row.field(236usize + offset)?.into_u32()?, + r#unknown237: row.field(237usize + offset)?.into_u32()?, + r#unknown238: row.field(238usize + offset)?.into_u32()?, + r#unknown239: row.field(239usize + offset)?.into_u32()?, + r#unknown240: row.field(240usize + offset)?.into_u32()?, + r#unknown241: row.field(241usize + offset)?.into_u32()?, + r#unknown242: row.field(242usize + offset)?.into_u32()?, + r#unknown243: row.field(243usize + offset)?.into_u32()?, + r#unknown244: row.field(244usize + offset)?.into_u32()?, + r#unknown245: row.field(245usize + offset)?.into_u32()?, + r#unknown246: row.field(246usize + offset)?.into_u32()?, + r#unknown247: row.field(247usize + offset)?.into_u32()?, + r#unknown248: row.field(248usize + offset)?.into_u32()?, + r#unknown249: row.field(249usize + offset)?.into_u32()?, + r#unknown250: row.field(250usize + offset)?.into_u32()?, + r#unknown251: row.field(251usize + offset)?.into_u32()?, + r#unknown252: row.field(252usize + offset)?.into_u32()?, + r#unknown253: row.field(253usize + offset)?.into_u32()?, + r#unknown254: row.field(254usize + offset)?.into_u32()?, + r#unknown255: row.field(255usize + offset)?.into_u32()?, + r#unknown256: row.field(256usize + offset)?.into_u32()?, + r#unknown257: row.field(257usize + offset)?.into_u32()?, + r#unknown258: row.field(258usize + offset)?.into_u32()?, + r#unknown259: row.field(259usize + offset)?.into_u32()?, + r#unknown260: row.field(260usize + offset)?.into_u32()?, + r#unknown261: row.field(261usize + offset)?.into_u32()?, + r#unknown262: row.field(262usize + offset)?.into_u32()?, + r#unknown263: row.field(263usize + offset)?.into_u32()?, + r#unknown264: row.field(264usize + offset)?.into_u32()?, + r#unknown265: row.field(265usize + offset)?.into_u32()?, + r#unknown266: row.field(266usize + offset)?.into_u32()?, + r#unknown267: row.field(267usize + offset)?.into_u32()?, + r#unknown268: row.field(268usize + offset)?.into_u32()?, + r#unknown269: row.field(269usize + offset)?.into_u32()?, + r#unknown270: row.field(270usize + offset)?.into_u32()?, + r#unknown271: row.field(271usize + offset)?.into_u32()?, + r#unknown272: row.field(272usize + offset)?.into_u32()?, + r#unknown273: row.field(273usize + offset)?.into_u32()?, + r#unknown274: row.field(274usize + offset)?.into_u32()?, + r#unknown275: row.field(275usize + offset)?.into_u32()?, + r#unknown276: row.field(276usize + offset)?.into_u32()?, + r#unknown277: row.field(277usize + offset)?.into_u32()?, + r#unknown278: row.field(278usize + offset)?.into_u32()?, + r#unknown279: row.field(279usize + offset)?.into_u32()?, + r#unknown280: row.field(280usize + offset)?.into_u32()?, + r#unknown281: row.field(281usize + offset)?.into_u32()?, + r#unknown282: row.field(282usize + offset)?.into_u32()?, + r#unknown283: row.field(283usize + offset)?.into_u32()?, + r#unknown284: row.field(284usize + offset)?.into_u32()?, + r#unknown285: row.field(285usize + offset)?.into_u32()?, + r#unknown286: row.field(286usize + offset)?.into_u32()?, + r#unknown287: row.field(287usize + offset)?.into_u32()?, + r#unknown288: row.field(288usize + offset)?.into_u32()?, + r#unknown289: row.field(289usize + offset)?.into_u32()?, + r#unknown290: row.field(290usize + offset)?.into_u32()?, + r#unknown291: row.field(291usize + offset)?.into_u32()?, + r#unknown292: row.field(292usize + offset)?.into_u32()?, + r#unknown293: row.field(293usize + offset)?.into_u32()?, + r#unknown294: row.field(294usize + offset)?.into_u32()?, + r#unknown295: row.field(295usize + offset)?.into_u32()?, + r#unknown296: row.field(296usize + offset)?.into_u32()?, + r#unknown297: row.field(297usize + offset)?.into_u32()?, + r#unknown298: row.field(298usize + offset)?.into_u32()?, + r#unknown299: row.field(299usize + offset)?.into_u32()?, + r#unknown300: row.field(300usize + offset)?.into_u32()?, + r#unknown301: row.field(301usize + offset)?.into_u32()?, + r#unknown302: row.field(302usize + offset)?.into_u32()?, + r#unknown303: row.field(303usize + offset)?.into_u32()?, + r#unknown304: row.field(304usize + offset)?.into_u32()?, + r#unknown305: row.field(305usize + offset)?.into_u32()?, + r#unknown306: row.field(306usize + offset)?.into_u32()?, + r#unknown307: row.field(307usize + offset)?.into_u32()?, + r#unknown308: row.field(308usize + offset)?.into_u32()?, + r#unknown309: row.field(309usize + offset)?.into_u32()?, + r#unknown310: row.field(310usize + offset)?.into_u32()?, + r#unknown311: row.field(311usize + offset)?.into_u32()?, + r#unknown312: row.field(312usize + offset)?.into_u32()?, + r#unknown313: row.field(313usize + offset)?.into_u32()?, + r#unknown314: row.field(314usize + offset)?.into_u32()?, + r#unknown315: row.field(315usize + offset)?.into_u32()?, + r#unknown316: row.field(316usize + offset)?.into_u32()?, + r#unknown317: row.field(317usize + offset)?.into_u32()?, + r#unknown318: row.field(318usize + offset)?.into_u32()?, + r#unknown319: row.field(319usize + offset)?.into_u32()?, + r#unknown320: row.field(320usize + offset)?.into_u32()?, + r#unknown321: row.field(321usize + offset)?.into_u32()?, + r#unknown322: row.field(322usize + offset)?.into_u32()?, + r#unknown323: row.field(323usize + offset)?.into_u32()?, + r#unknown324: row.field(324usize + offset)?.into_u32()?, + r#unknown325: row.field(325usize + offset)?.into_u32()?, + r#unknown326: row.field(326usize + offset)?.into_u32()?, + r#unknown327: row.field(327usize + offset)?.into_u32()?, + r#unknown328: row.field(328usize + offset)?.into_u32()?, + r#unknown329: row.field(329usize + offset)?.into_u32()?, + r#unknown330: row.field(330usize + offset)?.into_u32()?, + r#unknown331: row.field(331usize + offset)?.into_u32()?, + r#unknown332: row.field(332usize + offset)?.into_u32()?, + r#unknown333: row.field(333usize + offset)?.into_u32()?, + r#unknown334: row.field(334usize + offset)?.into_u32()?, + r#unknown335: row.field(335usize + offset)?.into_u32()?, + r#unknown336: row.field(336usize + offset)?.into_u32()?, + r#unknown337: row.field(337usize + offset)?.into_u32()?, + r#unknown338: row.field(338usize + offset)?.into_u32()?, + r#unknown339: row.field(339usize + offset)?.into_u32()?, + r#unknown340: row.field(340usize + offset)?.into_u32()?, + r#unknown341: row.field(341usize + offset)?.into_u32()?, + r#unknown342: row.field(342usize + offset)?.into_u32()?, + r#unknown343: row.field(343usize + offset)?.into_u32()?, + r#unknown344: row.field(344usize + offset)?.into_u32()?, + r#unknown345: row.field(345usize + offset)?.into_u32()?, + r#unknown346: row.field(346usize + offset)?.into_u32()?, + r#unknown347: row.field(347usize + offset)?.into_u32()?, + r#unknown348: row.field(348usize + offset)?.into_u32()?, + r#unknown349: row.field(349usize + offset)?.into_u32()?, + r#unknown350: row.field(350usize + offset)?.into_u32()?, + r#unknown351: row.field(351usize + offset)?.into_u32()?, + r#unknown352: row.field(352usize + offset)?.into_u32()?, + r#unknown353: row.field(353usize + offset)?.into_u32()?, + r#unknown354: row.field(354usize + offset)?.into_u32()?, + r#unknown355: row.field(355usize + offset)?.into_u32()?, + r#unknown356: row.field(356usize + offset)?.into_u32()?, + r#unknown357: row.field(357usize + offset)?.into_u32()?, + r#unknown358: row.field(358usize + offset)?.into_u32()?, + r#unknown359: row.field(359usize + offset)?.into_u32()?, + r#unknown360: row.field(360usize + offset)?.into_u32()?, + r#unknown361: row.field(361usize + offset)?.into_u32()?, + r#unknown362: row.field(362usize + offset)?.into_u32()?, + r#unknown363: row.field(363usize + offset)?.into_u32()?, + r#unknown364: row.field(364usize + offset)?.into_u32()?, + r#unknown365: row.field(365usize + offset)?.into_u32()?, + r#unknown366: row.field(366usize + offset)?.into_u32()?, + r#unknown367: row.field(367usize + offset)?.into_u32()?, + r#unknown368: row.field(368usize + offset)?.into_u32()?, + r#unknown369: row.field(369usize + offset)?.into_u32()?, + r#unknown370: row.field(370usize + offset)?.into_u32()?, + r#unknown371: row.field(371usize + offset)?.into_u32()?, + r#unknown372: row.field(372usize + offset)?.into_u32()?, + r#unknown373: row.field(373usize + offset)?.into_u32()?, + r#unknown374: row.field(374usize + offset)?.into_u32()?, + r#unknown375: row.field(375usize + offset)?.into_u32()?, + r#unknown376: row.field(376usize + offset)?.into_u32()?, + r#unknown377: row.field(377usize + offset)?.into_u32()?, + r#unknown378: row.field(378usize + offset)?.into_u32()?, + r#unknown379: row.field(379usize + offset)?.into_u32()?, + r#unknown380: row.field(380usize + offset)?.into_u32()?, + r#unknown381: row.field(381usize + offset)?.into_u32()?, + r#unknown382: row.field(382usize + offset)?.into_u32()?, + r#unknown383: row.field(383usize + offset)?.into_u32()?, + r#unknown384: row.field(384usize + offset)?.into_u32()?, + r#unknown385: row.field(385usize + offset)?.into_u32()?, + r#unknown386: row.field(386usize + offset)?.into_u32()?, + r#unknown387: row.field(387usize + offset)?.into_u32()?, + r#unknown388: row.field(388usize + offset)?.into_u32()?, + r#unknown389: row.field(389usize + offset)?.into_u32()?, + r#unknown390: row.field(390usize + offset)?.into_u32()?, + r#unknown391: row.field(391usize + offset)?.into_u32()?, + r#unknown392: row.field(392usize + offset)?.into_u32()?, + r#unknown393: row.field(393usize + offset)?.into_u32()?, + r#unknown394: row.field(394usize + offset)?.into_u32()?, + r#unknown395: row.field(395usize + offset)?.into_u32()?, + r#unknown396: row.field(396usize + offset)?.into_u32()?, + r#unknown397: row.field(397usize + offset)?.into_u32()?, + r#unknown398: row.field(398usize + offset)?.into_u32()?, + r#unknown399: row.field(399usize + offset)?.into_u32()?, + r#unknown400: row.field(400usize + offset)?.into_u32()?, + r#unknown401: row.field(401usize + offset)?.into_u32()?, + r#unknown402: row.field(402usize + offset)?.into_u32()?, + r#unknown403: row.field(403usize + offset)?.into_u32()?, + r#unknown404: row.field(404usize + offset)?.into_u32()?, + r#unknown405: row.field(405usize + offset)?.into_u32()?, + r#unknown406: row.field(406usize + offset)?.into_u32()?, + r#unknown407: row.field(407usize + offset)?.into_u32()?, + r#unknown408: row.field(408usize + offset)?.into_u32()?, + r#unknown409: row.field(409usize + offset)?.into_u32()?, + r#unknown410: row.field(410usize + offset)?.into_u32()?, + r#unknown411: row.field(411usize + offset)?.into_u32()?, + r#unknown412: row.field(412usize + offset)?.into_u32()?, + r#unknown413: row.field(413usize + offset)?.into_u32()?, + r#unknown414: row.field(414usize + offset)?.into_u32()?, + r#unknown415: row.field(415usize + offset)?.into_u32()?, + r#unknown416: row.field(416usize + offset)?.into_u32()?, + r#unknown417: row.field(417usize + offset)?.into_u32()?, + r#unknown418: row.field(418usize + offset)?.into_u32()?, + r#unknown419: row.field(419usize + offset)?.into_u32()?, + r#unknown420: row.field(420usize + offset)?.into_u32()?, + r#unknown421: row.field(421usize + offset)?.into_u32()?, + r#unknown422: row.field(422usize + offset)?.into_u32()?, + r#unknown423: row.field(423usize + offset)?.into_u32()?, + r#unknown424: row.field(424usize + offset)?.into_u32()?, + r#unknown425: row.field(425usize + offset)?.into_u32()?, + r#unknown426: row.field(426usize + offset)?.into_u32()?, + r#unknown427: row.field(427usize + offset)?.into_u32()?, + r#unknown428: row.field(428usize + offset)?.into_u32()?, + r#unknown429: row.field(429usize + offset)?.into_u32()?, + r#unknown430: row.field(430usize + offset)?.into_u32()?, + r#unknown431: row.field(431usize + offset)?.into_u32()?, + r#unknown432: row.field(432usize + offset)?.into_u32()?, + r#unknown433: row.field(433usize + offset)?.into_u32()?, + r#unknown434: row.field(434usize + offset)?.into_u32()?, + r#unknown435: row.field(435usize + offset)?.into_u32()?, + r#unknown436: row.field(436usize + offset)?.into_u32()?, + r#unknown437: row.field(437usize + offset)?.into_u32()?, + r#unknown438: row.field(438usize + offset)?.into_u32()?, + r#unknown439: row.field(439usize + offset)?.into_u32()?, + r#unknown440: row.field(440usize + offset)?.into_u32()?, + r#unknown441: row.field(441usize + offset)?.into_u32()?, + r#unknown442: row.field(442usize + offset)?.into_u32()?, + r#unknown443: row.field(443usize + offset)?.into_u32()?, + r#unknown444: row.field(444usize + offset)?.into_u32()?, + r#unknown445: row.field(445usize + offset)?.into_u32()?, + r#unknown446: row.field(446usize + offset)?.into_u32()?, + r#unknown447: row.field(447usize + offset)?.into_u32()?, + r#unknown448: row.field(448usize + offset)?.into_u32()?, + r#unknown449: row.field(449usize + offset)?.into_u32()?, + r#unknown450: row.field(450usize + offset)?.into_u32()?, + r#unknown451: row.field(451usize + offset)?.into_u32()?, + r#unknown452: row.field(452usize + offset)?.into_u32()?, + r#unknown453: row.field(453usize + offset)?.into_u32()?, + r#unknown454: row.field(454usize + offset)?.into_u32()?, + r#unknown455: row.field(455usize + offset)?.into_u32()?, + r#unknown456: row.field(456usize + offset)?.into_u32()?, + r#unknown457: row.field(457usize + offset)?.into_u32()?, + r#unknown458: row.field(458usize + offset)?.into_u32()?, + r#unknown459: row.field(459usize + offset)?.into_u32()?, + r#unknown460: row.field(460usize + offset)?.into_u32()?, + r#unknown461: row.field(461usize + offset)?.into_u32()?, + r#unknown462: row.field(462usize + offset)?.into_u32()?, + r#unknown463: row.field(463usize + offset)?.into_u32()?, + r#unknown464: row.field(464usize + offset)?.into_u32()?, + r#unknown465: row.field(465usize + offset)?.into_u32()?, + r#unknown466: row.field(466usize + offset)?.into_u32()?, + r#unknown467: row.field(467usize + offset)?.into_u32()?, + r#unknown468: row.field(468usize + offset)?.into_u32()?, + r#unknown469: row.field(469usize + offset)?.into_u32()?, + r#unknown470: row.field(470usize + offset)?.into_u32()?, + r#unknown471: row.field(471usize + offset)?.into_u32()?, + r#unknown472: row.field(472usize + offset)?.into_u32()?, + r#unknown473: row.field(473usize + offset)?.into_u32()?, + r#unknown474: row.field(474usize + offset)?.into_u32()?, + r#unknown475: row.field(475usize + offset)?.into_u32()?, + r#unknown476: row.field(476usize + offset)?.into_u32()?, + r#unknown477: row.field(477usize + offset)?.into_u32()?, + r#unknown478: row.field(478usize + offset)?.into_u32()?, + r#unknown479: row.field(479usize + offset)?.into_u32()?, + r#unknown480: row.field(480usize + offset)?.into_u32()?, + r#unknown481: row.field(481usize + offset)?.into_u32()?, + r#unknown482: row.field(482usize + offset)?.into_u32()?, + r#unknown483: row.field(483usize + offset)?.into_u32()?, + r#unknown484: row.field(484usize + offset)?.into_u32()?, + r#unknown485: row.field(485usize + offset)?.into_u32()?, + r#unknown486: row.field(486usize + offset)?.into_u32()?, + r#unknown487: row.field(487usize + offset)?.into_u32()?, + r#unknown488: row.field(488usize + offset)?.into_u32()?, + r#unknown489: row.field(489usize + offset)?.into_u32()?, + r#unknown490: row.field(490usize + offset)?.into_u32()?, + r#unknown491: row.field(491usize + offset)?.into_u32()?, + r#unknown492: row.field(492usize + offset)?.into_u32()?, + r#unknown493: row.field(493usize + offset)?.into_u32()?, + r#unknown494: row.field(494usize + offset)?.into_u32()?, + r#unknown495: row.field(495usize + offset)?.into_u32()?, + r#unknown496: row.field(496usize + offset)?.into_u32()?, + r#unknown497: row.field(497usize + offset)?.into_u32()?, + r#unknown498: row.field(498usize + offset)?.into_u32()?, + r#unknown499: row.field(499usize + offset)?.into_u32()?, + r#unknown500: row.field(500usize + offset)?.into_u32()?, + r#unknown501: row.field(501usize + offset)?.into_u32()?, + r#unknown502: row.field(502usize + offset)?.into_u32()?, + r#unknown503: row.field(503usize + offset)?.into_u32()?, + r#unknown504: row.field(504usize + offset)?.into_u32()?, + r#unknown505: row.field(505usize + offset)?.into_u32()?, + r#unknown506: row.field(506usize + offset)?.into_u32()?, + r#unknown507: row.field(507usize + offset)?.into_u32()?, + r#unknown508: row.field(508usize + offset)?.into_u32()?, + r#unknown509: row.field(509usize + offset)?.into_u32()?, + r#unknown510: row.field(510usize + offset)?.into_u32()?, + r#unknown511: row.field(511usize + offset)?.into_u32()?, + r#unknown512: row.field(512usize + offset)?.into_u32()?, + r#unknown513: row.field(513usize + offset)?.into_u32()?, + r#unknown514: row.field(514usize + offset)?.into_u32()?, + r#unknown515: row.field(515usize + offset)?.into_u32()?, + r#unknown516: row.field(516usize + offset)?.into_u32()?, + r#unknown517: row.field(517usize + offset)?.into_u32()?, + r#unknown518: row.field(518usize + offset)?.into_u32()?, + r#unknown519: row.field(519usize + offset)?.into_u32()?, + r#unknown520: row.field(520usize + offset)?.into_u32()?, + r#unknown521: row.field(521usize + offset)?.into_u32()?, + r#unknown522: row.field(522usize + offset)?.into_u32()?, + r#unknown523: row.field(523usize + offset)?.into_u32()?, + r#unknown524: row.field(524usize + offset)?.into_u32()?, + r#unknown525: row.field(525usize + offset)?.into_u32()?, + r#unknown526: row.field(526usize + offset)?.into_u32()?, + r#unknown527: row.field(527usize + offset)?.into_u32()?, + r#unknown528: row.field(528usize + offset)?.into_u32()?, + r#unknown529: row.field(529usize + offset)?.into_u32()?, + r#unknown530: row.field(530usize + offset)?.into_u32()?, + r#unknown531: row.field(531usize + offset)?.into_u32()?, + r#unknown532: row.field(532usize + offset)?.into_u32()?, + r#unknown533: row.field(533usize + offset)?.into_u32()?, + r#unknown534: row.field(534usize + offset)?.into_u32()?, + r#unknown535: row.field(535usize + offset)?.into_u32()?, + r#unknown536: row.field(536usize + offset)?.into_u32()?, + r#unknown537: row.field(537usize + offset)?.into_u32()?, + r#unknown538: row.field(538usize + offset)?.into_u32()?, + r#unknown539: row.field(539usize + offset)?.into_u32()?, + r#unknown540: row.field(540usize + offset)?.into_u32()?, + r#unknown541: row.field(541usize + offset)?.into_u32()?, + r#unknown542: row.field(542usize + offset)?.into_u32()?, + r#unknown543: row.field(543usize + offset)?.into_u32()?, + r#unknown544: row.field(544usize + offset)?.into_u32()?, + r#unknown545: row.field(545usize + offset)?.into_u32()?, + r#unknown546: row.field(546usize + offset)?.into_u32()?, + r#unknown547: row.field(547usize + offset)?.into_u32()?, + r#unknown548: row.field(548usize + offset)?.into_u32()?, + r#unknown549: row.field(549usize + offset)?.into_u32()?, + r#unknown550: row.field(550usize + offset)?.into_u32()?, + r#unknown551: row.field(551usize + offset)?.into_u32()?, + r#unknown552: row.field(552usize + offset)?.into_u32()?, + r#unknown553: row.field(553usize + offset)?.into_u32()?, + r#unknown554: row.field(554usize + offset)?.into_u32()?, + r#unknown555: row.field(555usize + offset)?.into_u32()?, + r#unknown556: row.field(556usize + offset)?.into_u32()?, + r#unknown557: row.field(557usize + offset)?.into_u32()?, + r#unknown558: row.field(558usize + offset)?.into_u32()?, + r#unknown559: row.field(559usize + offset)?.into_u32()?, + r#unknown560: row.field(560usize + offset)?.into_u32()?, + r#unknown561: row.field(561usize + offset)?.into_u32()?, + r#unknown562: row.field(562usize + offset)?.into_u32()?, + r#unknown563: row.field(563usize + offset)?.into_u32()?, + r#unknown564: row.field(564usize + offset)?.into_u32()?, + r#unknown565: row.field(565usize + offset)?.into_u32()?, + r#unknown566: row.field(566usize + offset)?.into_u32()?, + r#unknown567: row.field(567usize + offset)?.into_u32()?, + r#unknown568: row.field(568usize + offset)?.into_u32()?, + r#unknown569: row.field(569usize + offset)?.into_u32()?, + r#unknown570: row.field(570usize + offset)?.into_u32()?, + r#unknown571: row.field(571usize + offset)?.into_u32()?, + r#unknown572: row.field(572usize + offset)?.into_u32()?, + r#unknown573: row.field(573usize + offset)?.into_u32()?, + r#unknown574: row.field(574usize + offset)?.into_u32()?, + r#unknown575: row.field(575usize + offset)?.into_u32()?, + r#unknown576: row.field(576usize + offset)?.into_u32()?, + r#unknown577: row.field(577usize + offset)?.into_u32()?, + r#unknown578: row.field(578usize + offset)?.into_u32()?, + r#unknown579: row.field(579usize + offset)?.into_u32()?, + r#unknown580: row.field(580usize + offset)?.into_u32()?, + r#unknown581: row.field(581usize + offset)?.into_u32()?, + r#unknown582: row.field(582usize + offset)?.into_u32()?, + r#unknown583: row.field(583usize + offset)?.into_u32()?, + r#unknown584: row.field(584usize + offset)?.into_u32()?, + r#unknown585: row.field(585usize + offset)?.into_u32()?, + r#unknown586: row.field(586usize + offset)?.into_u32()?, + r#unknown587: row.field(587usize + offset)?.into_u32()?, + r#unknown588: row.field(588usize + offset)?.into_u32()?, + r#unknown589: row.field(589usize + offset)?.into_u32()?, + r#unknown590: row.field(590usize + offset)?.into_u32()?, + r#unknown591: row.field(591usize + offset)?.into_u32()?, + r#unknown592: row.field(592usize + offset)?.into_u32()?, + r#unknown593: row.field(593usize + offset)?.into_u32()?, + r#unknown594: row.field(594usize + offset)?.into_u32()?, + r#unknown595: row.field(595usize + offset)?.into_u32()?, + r#unknown596: row.field(596usize + offset)?.into_u32()?, + r#unknown597: row.field(597usize + offset)?.into_u32()?, + r#unknown598: row.field(598usize + offset)?.into_u32()?, + r#unknown599: row.field(599usize + offset)?.into_u32()?, + r#unknown600: row.field(600usize + offset)?.into_u32()?, + r#unknown601: row.field(601usize + offset)?.into_u32()?, + r#unknown602: row.field(602usize + offset)?.into_u32()?, + r#unknown603: row.field(603usize + offset)?.into_u32()?, + r#unknown604: row.field(604usize + offset)?.into_u32()?, + r#unknown605: row.field(605usize + offset)?.into_u32()?, + r#unknown606: row.field(606usize + offset)?.into_u32()?, + r#unknown607: row.field(607usize + offset)?.into_u32()?, + r#unknown608: row.field(608usize + offset)?.into_u32()?, + r#unknown609: row.field(609usize + offset)?.into_u32()?, + r#unknown610: row.field(610usize + offset)?.into_u32()?, + r#unknown611: row.field(611usize + offset)?.into_u32()?, + r#unknown612: row.field(612usize + offset)?.into_u32()?, + r#unknown613: row.field(613usize + offset)?.into_u32()?, + r#unknown614: row.field(614usize + offset)?.into_u32()?, + r#unknown615: row.field(615usize + offset)?.into_u32()?, + r#unknown616: row.field(616usize + offset)?.into_u32()?, + r#unknown617: row.field(617usize + offset)?.into_u32()?, + r#unknown618: row.field(618usize + offset)?.into_u32()?, + r#unknown619: row.field(619usize + offset)?.into_u32()?, + r#unknown620: row.field(620usize + offset)?.into_u32()?, + r#unknown621: row.field(621usize + offset)?.into_u32()?, + r#unknown622: row.field(622usize + offset)?.into_u32()?, + r#unknown623: row.field(623usize + offset)?.into_u32()?, + r#unknown624: row.field(624usize + offset)?.into_u32()?, + r#unknown625: row.field(625usize + offset)?.into_u32()?, + r#unknown626: row.field(626usize + offset)?.into_u32()?, + r#unknown627: row.field(627usize + offset)?.into_u32()?, + r#unknown628: row.field(628usize + offset)?.into_u32()?, + r#unknown629: row.field(629usize + offset)?.into_u32()?, + r#unknown630: row.field(630usize + offset)?.into_u32()?, + r#unknown631: row.field(631usize + offset)?.into_u32()?, + r#unknown632: row.field(632usize + offset)?.into_u32()?, + r#unknown633: row.field(633usize + offset)?.into_u32()?, + r#unknown634: row.field(634usize + offset)?.into_u32()?, + r#unknown635: row.field(635usize + offset)?.into_u32()?, + r#unknown636: row.field(636usize + offset)?.into_u32()?, + r#unknown637: row.field(637usize + offset)?.into_u32()?, + r#unknown638: row.field(638usize + offset)?.into_u32()?, + r#unknown639: row.field(639usize + offset)?.into_u32()?, + r#unknown640: row.field(640usize + offset)?.into_u32()?, + r#unknown641: row.field(641usize + offset)?.into_u32()?, + r#unknown642: row.field(642usize + offset)?.into_u32()?, + r#unknown643: row.field(643usize + offset)?.into_u32()?, + r#unknown644: row.field(644usize + offset)?.into_u32()?, + r#unknown645: row.field(645usize + offset)?.into_u32()?, + r#unknown646: row.field(646usize + offset)?.into_u32()?, + r#unknown647: row.field(647usize + offset)?.into_u32()?, + r#unknown648: row.field(648usize + offset)?.into_u32()?, + r#unknown649: row.field(649usize + offset)?.into_u32()?, + r#unknown650: row.field(650usize + offset)?.into_u32()?, + r#unknown651: row.field(651usize + offset)?.into_u32()?, + r#unknown652: row.field(652usize + offset)?.into_u32()?, + r#unknown653: row.field(653usize + offset)?.into_u32()?, + r#unknown654: row.field(654usize + offset)?.into_u32()?, + r#unknown655: row.field(655usize + offset)?.into_u32()?, + r#unknown656: row.field(656usize + offset)?.into_u32()?, + r#unknown657: row.field(657usize + offset)?.into_u32()?, + r#unknown658: row.field(658usize + offset)?.into_u32()?, + r#unknown659: row.field(659usize + offset)?.into_u32()?, + r#unknown660: row.field(660usize + offset)?.into_u32()?, + r#unknown661: row.field(661usize + offset)?.into_u32()?, + r#unknown662: row.field(662usize + offset)?.into_u32()?, + r#unknown663: row.field(663usize + offset)?.into_u32()?, + r#unknown664: row.field(664usize + offset)?.into_u32()?, + r#unknown665: row.field(665usize + offset)?.into_u32()?, + r#unknown666: row.field(666usize + offset)?.into_u32()?, + r#unknown667: row.field(667usize + offset)?.into_u32()?, + r#unknown668: row.field(668usize + offset)?.into_u32()?, + r#unknown669: row.field(669usize + offset)?.into_u32()?, + r#unknown670: row.field(670usize + offset)?.into_u32()?, + r#unknown671: row.field(671usize + offset)?.into_u32()?, + r#unknown672: row.field(672usize + offset)?.into_u32()?, + r#unknown673: row.field(673usize + offset)?.into_u32()?, + r#unknown674: row.field(674usize + offset)?.into_u32()?, + r#unknown675: row.field(675usize + offset)?.into_u32()?, + r#unknown676: row.field(676usize + offset)?.into_u32()?, + r#unknown677: row.field(677usize + offset)?.into_u32()?, + r#unknown678: row.field(678usize + offset)?.into_u32()?, + r#unknown679: row.field(679usize + offset)?.into_u32()?, + r#unknown680: row.field(680usize + offset)?.into_u32()?, + r#unknown681: row.field(681usize + offset)?.into_u32()?, + r#unknown682: row.field(682usize + offset)?.into_u32()?, + r#unknown683: row.field(683usize + offset)?.into_u32()?, + r#unknown684: row.field(684usize + offset)?.into_u32()?, + r#unknown685: row.field(685usize + offset)?.into_u32()?, + r#unknown686: row.field(686usize + offset)?.into_u32()?, + r#unknown687: row.field(687usize + offset)?.into_u32()?, + r#unknown688: row.field(688usize + offset)?.into_u32()?, + r#unknown689: row.field(689usize + offset)?.into_u32()?, + r#unknown690: row.field(690usize + offset)?.into_u32()?, + r#unknown691: row.field(691usize + offset)?.into_u32()?, + r#unknown692: row.field(692usize + offset)?.into_u32()?, + r#unknown693: row.field(693usize + offset)?.into_u32()?, + r#unknown694: row.field(694usize + offset)?.into_u32()?, + r#unknown695: row.field(695usize + offset)?.into_u32()?, + r#unknown696: row.field(696usize + offset)?.into_u32()?, + r#unknown697: row.field(697usize + offset)?.into_u32()?, + r#unknown698: row.field(698usize + offset)?.into_u32()?, + r#unknown699: row.field(699usize + offset)?.into_u32()?, + r#unknown700: row.field(700usize + offset)?.into_u32()?, + r#unknown701: row.field(701usize + offset)?.into_u32()?, + r#unknown702: row.field(702usize + offset)?.into_u32()?, + r#unknown703: row.field(703usize + offset)?.into_u32()?, + r#unknown704: row.field(704usize + offset)?.into_u32()?, + r#unknown705: row.field(705usize + offset)?.into_u32()?, + r#unknown706: row.field(706usize + offset)?.into_u32()?, + r#unknown707: row.field(707usize + offset)?.into_u32()?, + r#unknown708: row.field(708usize + offset)?.into_u32()?, + r#unknown709: row.field(709usize + offset)?.into_u32()?, + r#unknown710: row.field(710usize + offset)?.into_u32()?, + r#unknown711: row.field(711usize + offset)?.into_u32()?, + r#unknown712: row.field(712usize + offset)?.into_u32()?, + r#unknown713: row.field(713usize + offset)?.into_u32()?, + r#unknown714: row.field(714usize + offset)?.into_u32()?, + r#unknown715: row.field(715usize + offset)?.into_u32()?, + r#unknown716: row.field(716usize + offset)?.into_u32()?, + r#unknown717: row.field(717usize + offset)?.into_u32()?, + r#unknown718: row.field(718usize + offset)?.into_u32()?, + r#unknown719: row.field(719usize + offset)?.into_u32()?, + r#unknown720: row.field(720usize + offset)?.into_u32()?, + r#unknown721: row.field(721usize + offset)?.into_u32()?, + r#unknown722: row.field(722usize + offset)?.into_u32()?, + r#unknown723: row.field(723usize + offset)?.into_u32()?, + r#unknown724: row.field(724usize + offset)?.into_u32()?, + r#unknown725: row.field(725usize + offset)?.into_u32()?, + r#unknown726: row.field(726usize + offset)?.into_u32()?, + r#unknown727: row.field(727usize + offset)?.into_u32()?, + r#unknown728: row.field(728usize + offset)?.into_u32()?, + r#unknown729: row.field(729usize + offset)?.into_u32()?, + r#unknown730: row.field(730usize + offset)?.into_u32()?, + r#unknown731: row.field(731usize + offset)?.into_u32()?, + r#unknown732: row.field(732usize + offset)?.into_u32()?, + r#unknown733: row.field(733usize + offset)?.into_u32()?, + r#unknown734: row.field(734usize + offset)?.into_u32()?, + r#unknown735: row.field(735usize + offset)?.into_u32()?, + r#unknown736: row.field(736usize + offset)?.into_u32()?, + r#unknown737: row.field(737usize + offset)?.into_u32()?, + r#unknown738: row.field(738usize + offset)?.into_u32()?, + r#unknown739: row.field(739usize + offset)?.into_u32()?, + r#unknown740: row.field(740usize + offset)?.into_u32()?, + r#unknown741: row.field(741usize + offset)?.into_u32()?, + r#unknown742: row.field(742usize + offset)?.into_u32()?, + r#unknown743: row.field(743usize + offset)?.into_u32()?, + r#unknown744: row.field(744usize + offset)?.into_u32()?, + r#unknown745: row.field(745usize + offset)?.into_u32()?, + r#unknown746: row.field(746usize + offset)?.into_u32()?, + r#unknown747: row.field(747usize + offset)?.into_u32()?, + r#unknown748: row.field(748usize + offset)?.into_u32()?, + r#unknown749: row.field(749usize + offset)?.into_u32()?, + r#unknown750: row.field(750usize + offset)?.into_u32()?, + r#unknown751: row.field(751usize + offset)?.into_u32()?, + r#unknown752: row.field(752usize + offset)?.into_u32()?, + r#unknown753: row.field(753usize + offset)?.into_u32()?, + r#unknown754: row.field(754usize + offset)?.into_u32()?, + r#unknown755: row.field(755usize + offset)?.into_u32()?, + r#unknown756: row.field(756usize + offset)?.into_u32()?, + r#unknown757: row.field(757usize + offset)?.into_u32()?, + r#unknown758: row.field(758usize + offset)?.into_u32()?, + r#unknown759: row.field(759usize + offset)?.into_u32()?, + r#unknown760: row.field(760usize + offset)?.into_u32()?, + r#unknown761: row.field(761usize + offset)?.into_u32()?, + r#unknown762: row.field(762usize + offset)?.into_u32()?, + r#unknown763: row.field(763usize + offset)?.into_u32()?, + r#unknown764: row.field(764usize + offset)?.into_u32()?, + r#unknown765: row.field(765usize + offset)?.into_u32()?, + r#unknown766: row.field(766usize + offset)?.into_u32()?, + r#unknown767: row.field(767usize + offset)?.into_u32()?, + r#unknown768: row.field(768usize + offset)?.into_u32()?, + r#unknown769: row.field(769usize + offset)?.into_u32()?, + r#unknown770: row.field(770usize + offset)?.into_u32()?, + r#unknown771: row.field(771usize + offset)?.into_u32()?, + r#unknown772: row.field(772usize + offset)?.into_u32()?, + r#unknown773: row.field(773usize + offset)?.into_u32()?, + r#unknown774: row.field(774usize + offset)?.into_u32()?, + r#unknown775: row.field(775usize + offset)?.into_u32()?, + r#unknown776: row.field(776usize + offset)?.into_u32()?, + r#unknown777: row.field(777usize + offset)?.into_u32()?, + r#unknown778: row.field(778usize + offset)?.into_u32()?, + r#unknown779: row.field(779usize + offset)?.into_u32()?, + r#unknown780: row.field(780usize + offset)?.into_u32()?, + r#unknown781: row.field(781usize + offset)?.into_u32()?, + r#unknown782: row.field(782usize + offset)?.into_u32()?, + r#unknown783: row.field(783usize + offset)?.into_u32()?, + r#unknown784: row.field(784usize + offset)?.into_u32()?, + r#unknown785: row.field(785usize + offset)?.into_u32()?, + r#unknown786: row.field(786usize + offset)?.into_u32()?, + r#unknown787: row.field(787usize + offset)?.into_u32()?, + r#unknown788: row.field(788usize + offset)?.into_u32()?, + r#unknown789: row.field(789usize + offset)?.into_u32()?, + r#unknown790: row.field(790usize + offset)?.into_u32()?, + r#unknown791: row.field(791usize + offset)?.into_u32()?, + r#unknown792: row.field(792usize + offset)?.into_u32()?, + r#unknown793: row.field(793usize + offset)?.into_u32()?, + r#unknown794: row.field(794usize + offset)?.into_u32()?, + r#unknown795: row.field(795usize + offset)?.into_u32()?, + r#unknown796: row.field(796usize + offset)?.into_u32()?, + r#unknown797: row.field(797usize + offset)?.into_u32()?, + r#unknown798: row.field(798usize + offset)?.into_u32()?, + r#unknown799: row.field(799usize + offset)?.into_u32()?, + r#unknown800: row.field(800usize + offset)?.into_u32()?, + r#unknown801: row.field(801usize + offset)?.into_u32()?, + r#unknown802: row.field(802usize + offset)?.into_u32()?, + r#unknown803: row.field(803usize + offset)?.into_u32()?, + r#unknown804: row.field(804usize + offset)?.into_u32()?, + r#unknown805: row.field(805usize + offset)?.into_u32()?, + r#unknown806: row.field(806usize + offset)?.into_u32()?, + r#unknown807: row.field(807usize + offset)?.into_u32()?, + r#unknown808: row.field(808usize + offset)?.into_u32()?, + r#unknown809: row.field(809usize + offset)?.into_u32()?, + r#unknown810: row.field(810usize + offset)?.into_u32()?, + r#unknown811: row.field(811usize + offset)?.into_u32()?, + r#unknown812: row.field(812usize + offset)?.into_u32()?, + r#unknown813: row.field(813usize + offset)?.into_u32()?, + r#unknown814: row.field(814usize + offset)?.into_u32()?, + r#unknown815: row.field(815usize + offset)?.into_u32()?, + r#unknown816: row.field(816usize + offset)?.into_u32()?, + r#unknown817: row.field(817usize + offset)?.into_u32()?, + r#unknown818: row.field(818usize + offset)?.into_u32()?, + r#unknown819: row.field(819usize + offset)?.into_u32()?, + r#unknown820: row.field(820usize + offset)?.into_u32()?, + r#unknown821: row.field(821usize + offset)?.into_u32()?, + r#unknown822: row.field(822usize + offset)?.into_u32()?, + r#unknown823: row.field(823usize + offset)?.into_u32()?, + r#unknown824: row.field(824usize + offset)?.into_u32()?, + r#unknown825: row.field(825usize + offset)?.into_u32()?, + r#unknown826: row.field(826usize + offset)?.into_u32()?, + r#unknown827: row.field(827usize + offset)?.into_u32()?, + r#unknown828: row.field(828usize + offset)?.into_u32()?, + r#unknown829: row.field(829usize + offset)?.into_u32()?, + r#unknown830: row.field(830usize + offset)?.into_u32()?, + r#unknown831: row.field(831usize + offset)?.into_u32()?, + r#unknown832: row.field(832usize + offset)?.into_u32()?, + r#unknown833: row.field(833usize + offset)?.into_u32()?, + r#unknown834: row.field(834usize + offset)?.into_u32()?, + r#unknown835: row.field(835usize + offset)?.into_u32()?, + r#unknown836: row.field(836usize + offset)?.into_u32()?, + r#unknown837: row.field(837usize + offset)?.into_u32()?, + r#unknown838: row.field(838usize + offset)?.into_u32()?, + r#unknown839: row.field(839usize + offset)?.into_u32()?, + r#unknown840: row.field(840usize + offset)?.into_u32()?, + r#unknown841: row.field(841usize + offset)?.into_u32()?, + r#unknown842: row.field(842usize + offset)?.into_u32()?, + r#unknown843: row.field(843usize + offset)?.into_u32()?, + r#unknown844: row.field(844usize + offset)?.into_u32()?, + r#unknown845: row.field(845usize + offset)?.into_u32()?, + r#unknown846: row.field(846usize + offset)?.into_u32()?, + r#unknown847: row.field(847usize + offset)?.into_u32()?, + r#unknown848: row.field(848usize + offset)?.into_u32()?, + r#unknown849: row.field(849usize + offset)?.into_u32()?, + r#unknown850: row.field(850usize + offset)?.into_u32()?, + r#unknown851: row.field(851usize + offset)?.into_u32()?, + r#unknown852: row.field(852usize + offset)?.into_u32()?, + r#unknown853: row.field(853usize + offset)?.into_u32()?, + r#unknown854: row.field(854usize + offset)?.into_u32()?, + r#unknown855: row.field(855usize + offset)?.into_u32()?, + r#unknown856: row.field(856usize + offset)?.into_u32()?, + r#unknown857: row.field(857usize + offset)?.into_u32()?, + r#unknown858: row.field(858usize + offset)?.into_u32()?, + r#unknown859: row.field(859usize + offset)?.into_u32()?, + r#unknown860: row.field(860usize + offset)?.into_u32()?, + r#unknown861: row.field(861usize + offset)?.into_u32()?, + r#unknown862: row.field(862usize + offset)?.into_u32()?, + r#unknown863: row.field(863usize + offset)?.into_u32()?, + r#unknown864: row.field(864usize + offset)?.into_u32()?, + r#unknown865: row.field(865usize + offset)?.into_u32()?, + r#unknown866: row.field(866usize + offset)?.into_u32()?, + r#unknown867: row.field(867usize + offset)?.into_u32()?, + r#unknown868: row.field(868usize + offset)?.into_u32()?, + r#unknown869: row.field(869usize + offset)?.into_u32()?, + r#unknown870: row.field(870usize + offset)?.into_u32()?, + r#unknown871: row.field(871usize + offset)?.into_u32()?, + r#unknown872: row.field(872usize + offset)?.into_u32()?, + r#unknown873: row.field(873usize + offset)?.into_u32()?, + r#unknown874: row.field(874usize + offset)?.into_u32()?, + r#unknown875: row.field(875usize + offset)?.into_u32()?, + r#unknown876: row.field(876usize + offset)?.into_u32()?, + r#unknown877: row.field(877usize + offset)?.into_u32()?, + r#unknown878: row.field(878usize + offset)?.into_u32()?, + r#unknown879: row.field(879usize + offset)?.into_u32()?, + r#unknown880: row.field(880usize + offset)?.into_u32()?, + r#unknown881: row.field(881usize + offset)?.into_u32()?, + r#unknown882: row.field(882usize + offset)?.into_u32()?, + r#unknown883: row.field(883usize + offset)?.into_u32()?, + r#unknown884: row.field(884usize + offset)?.into_u32()?, + r#unknown885: row.field(885usize + offset)?.into_u32()?, + r#unknown886: row.field(886usize + offset)?.into_u32()?, + r#unknown887: row.field(887usize + offset)?.into_u32()?, + r#unknown888: row.field(888usize + offset)?.into_u32()?, + r#unknown889: row.field(889usize + offset)?.into_u32()?, + r#unknown890: row.field(890usize + offset)?.into_u32()?, + r#unknown891: row.field(891usize + offset)?.into_u32()?, + r#unknown892: row.field(892usize + offset)?.into_u32()?, + r#unknown893: row.field(893usize + offset)?.into_u32()?, + r#unknown894: row.field(894usize + offset)?.into_u32()?, + r#unknown895: row.field(895usize + offset)?.into_u32()?, + r#unknown896: row.field(896usize + offset)?.into_u32()?, + r#unknown897: row.field(897usize + offset)?.into_u32()?, + r#unknown898: row.field(898usize + offset)?.into_u32()?, + r#unknown899: row.field(899usize + offset)?.into_u32()?, + r#unknown900: row.field(900usize + offset)?.into_u32()?, + r#unknown901: row.field(901usize + offset)?.into_u32()?, + r#unknown902: row.field(902usize + offset)?.into_u32()?, + r#unknown903: row.field(903usize + offset)?.into_u32()?, + r#unknown904: row.field(904usize + offset)?.into_u32()?, + r#unknown905: row.field(905usize + offset)?.into_u32()?, + r#unknown906: row.field(906usize + offset)?.into_u32()?, + r#unknown907: row.field(907usize + offset)?.into_u32()?, + r#unknown908: row.field(908usize + offset)?.into_u32()?, + r#unknown909: row.field(909usize + offset)?.into_u32()?, + r#unknown910: row.field(910usize + offset)?.into_u32()?, + r#unknown911: row.field(911usize + offset)?.into_u32()?, + r#unknown912: row.field(912usize + offset)?.into_u32()?, + r#unknown913: row.field(913usize + offset)?.into_u32()?, + r#unknown914: row.field(914usize + offset)?.into_u32()?, + r#unknown915: row.field(915usize + offset)?.into_u32()?, + r#unknown916: row.field(916usize + offset)?.into_u32()?, + r#unknown917: row.field(917usize + offset)?.into_u32()?, + r#unknown918: row.field(918usize + offset)?.into_u32()?, + r#unknown919: row.field(919usize + offset)?.into_u32()?, + r#unknown920: row.field(920usize + offset)?.into_u32()?, + r#unknown921: row.field(921usize + offset)?.into_u32()?, + r#unknown922: row.field(922usize + offset)?.into_u32()?, + r#unknown923: row.field(923usize + offset)?.into_u32()?, + r#unknown924: row.field(924usize + offset)?.into_u32()?, + r#unknown925: row.field(925usize + offset)?.into_u32()?, + r#unknown926: row.field(926usize + offset)?.into_u32()?, + r#unknown927: row.field(927usize + offset)?.into_u32()?, + r#unknown928: row.field(928usize + offset)?.into_u32()?, + r#unknown929: row.field(929usize + offset)?.into_u32()?, + r#unknown930: row.field(930usize + offset)?.into_u32()?, + r#unknown931: row.field(931usize + offset)?.into_u32()?, + r#unknown932: row.field(932usize + offset)?.into_u32()?, + r#unknown933: row.field(933usize + offset)?.into_u32()?, + r#unknown934: row.field(934usize + offset)?.into_u32()?, + r#unknown935: row.field(935usize + offset)?.into_u32()?, + r#unknown936: row.field(936usize + offset)?.into_u32()?, + r#unknown937: row.field(937usize + offset)?.into_u32()?, + r#unknown938: row.field(938usize + offset)?.into_u32()?, + r#unknown939: row.field(939usize + offset)?.into_u32()?, + r#unknown940: row.field(940usize + offset)?.into_u32()?, + r#unknown941: row.field(941usize + offset)?.into_u32()?, + r#unknown942: row.field(942usize + offset)?.into_u32()?, + r#unknown943: row.field(943usize + offset)?.into_u32()?, + r#unknown944: row.field(944usize + offset)?.into_u32()?, + r#unknown945: row.field(945usize + offset)?.into_u32()?, + r#unknown946: row.field(946usize + offset)?.into_u32()?, + r#unknown947: row.field(947usize + offset)?.into_u32()?, + r#unknown948: row.field(948usize + offset)?.into_u32()?, + r#unknown949: row.field(949usize + offset)?.into_u32()?, + r#unknown950: row.field(950usize + offset)?.into_u32()?, + r#unknown951: row.field(951usize + offset)?.into_u32()?, + r#unknown952: row.field(952usize + offset)?.into_u32()?, + r#unknown953: row.field(953usize + offset)?.into_u32()?, + r#unknown954: row.field(954usize + offset)?.into_u32()?, + r#unknown955: row.field(955usize + offset)?.into_u32()?, + r#unknown956: row.field(956usize + offset)?.into_u32()?, + r#unknown957: row.field(957usize + offset)?.into_u32()?, + r#unknown958: row.field(958usize + offset)?.into_u32()?, + r#unknown959: row.field(959usize + offset)?.into_u32()?, + r#unknown960: row.field(960usize + offset)?.into_u32()?, + r#unknown961: row.field(961usize + offset)?.into_u32()?, + r#unknown962: row.field(962usize + offset)?.into_u32()?, + r#unknown963: row.field(963usize + offset)?.into_u32()?, + r#unknown964: row.field(964usize + offset)?.into_u32()?, + r#unknown965: row.field(965usize + offset)?.into_u32()?, + r#unknown966: row.field(966usize + offset)?.into_u32()?, + r#unknown967: row.field(967usize + offset)?.into_u32()?, + r#unknown968: row.field(968usize + offset)?.into_u32()?, + r#unknown969: row.field(969usize + offset)?.into_u32()?, + r#unknown970: row.field(970usize + offset)?.into_u32()?, + r#unknown971: row.field(971usize + offset)?.into_u32()?, + r#unknown972: row.field(972usize + offset)?.into_u32()?, + r#unknown973: row.field(973usize + offset)?.into_u32()?, + r#unknown974: row.field(974usize + offset)?.into_u32()?, + r#unknown975: row.field(975usize + offset)?.into_u32()?, + r#unknown976: row.field(976usize + offset)?.into_u32()?, + r#unknown977: row.field(977usize + offset)?.into_u32()?, + r#unknown978: row.field(978usize + offset)?.into_u32()?, + r#unknown979: row.field(979usize + offset)?.into_u32()?, + r#unknown980: row.field(980usize + offset)?.into_u32()?, + r#unknown981: row.field(981usize + offset)?.into_u32()?, + r#unknown982: row.field(982usize + offset)?.into_u32()?, + r#unknown983: row.field(983usize + offset)?.into_u32()?, + r#unknown984: row.field(984usize + offset)?.into_u32()?, + r#unknown985: row.field(985usize + offset)?.into_u32()?, + r#unknown986: row.field(986usize + offset)?.into_u32()?, + r#unknown987: row.field(987usize + offset)?.into_u32()?, + r#unknown988: row.field(988usize + offset)?.into_u32()?, + r#unknown989: row.field(989usize + offset)?.into_u32()?, + r#unknown990: row.field(990usize + offset)?.into_u32()?, + r#unknown991: row.field(991usize + offset)?.into_u32()?, + r#unknown992: row.field(992usize + offset)?.into_u32()?, + r#unknown993: row.field(993usize + offset)?.into_u32()?, + r#unknown994: row.field(994usize + offset)?.into_u32()?, + r#unknown995: row.field(995usize + offset)?.into_u32()?, + r#unknown996: row.field(996usize + offset)?.into_u32()?, + r#unknown997: row.field(997usize + offset)?.into_u32()?, + r#unknown998: row.field(998usize + offset)?.into_u32()?, + r#unknown999: row.field(999usize + offset)?.into_u32()?, + r#unknown1000: row.field(1000usize + offset)?.into_u32()?, + r#unknown1001: row.field(1001usize + offset)?.into_u32()?, + r#unknown1002: row.field(1002usize + offset)?.into_u32()?, + r#unknown1003: row.field(1003usize + offset)?.into_u32()?, + r#unknown1004: row.field(1004usize + offset)?.into_u32()?, + r#unknown1005: row.field(1005usize + offset)?.into_u32()?, + r#unknown1006: row.field(1006usize + offset)?.into_u32()?, + r#unknown1007: row.field(1007usize + offset)?.into_u32()?, + r#unknown1008: row.field(1008usize + offset)?.into_u32()?, + r#unknown1009: row.field(1009usize + offset)?.into_u32()?, + r#unknown1010: row.field(1010usize + offset)?.into_u32()?, + r#unknown1011: row.field(1011usize + offset)?.into_u32()?, + r#unknown1012: row.field(1012usize + offset)?.into_u32()?, + r#unknown1013: row.field(1013usize + offset)?.into_u32()?, + r#unknown1014: row.field(1014usize + offset)?.into_u32()?, + r#unknown1015: row.field(1015usize + offset)?.into_u32()?, + r#unknown1016: row.field(1016usize + offset)?.into_u32()?, + r#unknown1017: row.field(1017usize + offset)?.into_u32()?, + r#unknown1018: row.field(1018usize + offset)?.into_u32()?, + r#unknown1019: row.field(1019usize + offset)?.into_u32()?, + r#unknown1020: row.field(1020usize + offset)?.into_u8()?, + r#unknown1021: row.field(1021usize + offset)?.into_u8()?, + r#unknown1022: row.field(1022usize + offset)?.into_u8()?, + r#unknown1023: row.field(1023usize + offset)?.into_u8()?, + r#unknown1024: row.field(1024usize + offset)?.into_u8()?, + r#unknown1025: row.field(1025usize + offset)?.into_u8()?, + r#unknown1026: row.field(1026usize + offset)?.into_u8()?, + r#unknown1027: row.field(1027usize + offset)?.into_u8()?, + r#unknown1028: row.field(1028usize + offset)?.into_u8()?, + r#unknown1029: row.field(1029usize + offset)?.into_u8()?, + r#unknown1030: row.field(1030usize + offset)?.into_u8()?, + r#unknown1031: row.field(1031usize + offset)?.into_u8()?, + r#unknown1032: row.field(1032usize + offset)?.into_u8()?, + r#unknown1033: row.field(1033usize + offset)?.into_u8()?, + r#unknown1034: row.field(1034usize + offset)?.into_u8()?, + r#unknown1035: row.field(1035usize + offset)?.into_u8()?, + r#unknown1036: row.field(1036usize + offset)?.into_u8()?, + r#unknown1037: row.field(1037usize + offset)?.into_u8()?, + r#unknown1038: row.field(1038usize + offset)?.into_u8()?, + r#unknown1039: row.field(1039usize + offset)?.into_u8()?, + r#unknown1040: row.field(1040usize + offset)?.into_u8()?, + r#unknown1041: row.field(1041usize + offset)?.into_u8()?, + r#unknown1042: row.field(1042usize + offset)?.into_u8()?, + r#unknown1043: row.field(1043usize + offset)?.into_u8()?, + r#unknown1044: row.field(1044usize + offset)?.into_u8()?, + r#unknown1045: row.field(1045usize + offset)?.into_u8()?, + r#unknown1046: row.field(1046usize + offset)?.into_u8()?, + r#unknown1047: row.field(1047usize + offset)?.into_u8()?, + r#unknown1048: row.field(1048usize + offset)?.into_u8()?, + r#unknown1049: row.field(1049usize + offset)?.into_u8()?, + r#unknown1050: row.field(1050usize + offset)?.into_u8()?, + r#unknown1051: row.field(1051usize + offset)?.into_u8()?, + r#unknown1052: row.field(1052usize + offset)?.into_u8()?, + r#unknown1053: row.field(1053usize + offset)?.into_u8()?, + r#unknown1054: row.field(1054usize + offset)?.into_u8()?, + r#unknown1055: row.field(1055usize + offset)?.into_u8()?, + r#unknown1056: row.field(1056usize + offset)?.into_u8()?, + r#unknown1057: row.field(1057usize + offset)?.into_u8()?, + r#unknown1058: row.field(1058usize + offset)?.into_u8()?, + r#unknown1059: row.field(1059usize + offset)?.into_u8()?, + r#unknown1060: row.field(1060usize + offset)?.into_u8()?, + r#unknown1061: row.field(1061usize + offset)?.into_u8()?, + r#unknown1062: row.field(1062usize + offset)?.into_u8()?, + r#unknown1063: row.field(1063usize + offset)?.into_u8()?, + r#unknown1064: row.field(1064usize + offset)?.into_u8()?, + r#unknown1065: row.field(1065usize + offset)?.into_u8()?, + r#unknown1066: row.field(1066usize + offset)?.into_u8()?, + r#unknown1067: row.field(1067usize + offset)?.into_u8()?, + r#unknown1068: row.field(1068usize + offset)?.into_u8()?, + r#unknown1069: row.field(1069usize + offset)?.into_u8()?, + r#unknown1070: row.field(1070usize + offset)?.into_u8()?, + r#unknown1071: row.field(1071usize + offset)?.into_u8()?, + r#unknown1072: row.field(1072usize + offset)?.into_u8()?, + r#unknown1073: row.field(1073usize + offset)?.into_u8()?, + r#unknown1074: row.field(1074usize + offset)?.into_u8()?, + r#unknown1075: row.field(1075usize + offset)?.into_u8()?, + r#unknown1076: row.field(1076usize + offset)?.into_u8()?, + r#unknown1077: row.field(1077usize + offset)?.into_u8()?, + r#unknown1078: row.field(1078usize + offset)?.into_u8()?, + r#unknown1079: row.field(1079usize + offset)?.into_u8()?, + r#unknown1080: row.field(1080usize + offset)?.into_u8()?, + r#unknown1081: row.field(1081usize + offset)?.into_u8()?, + r#unknown1082: row.field(1082usize + offset)?.into_u8()?, + r#unknown1083: row.field(1083usize + offset)?.into_u8()?, + r#unknown1084: row.field(1084usize + offset)?.into_u8()?, + r#unknown1085: row.field(1085usize + offset)?.into_u8()?, + r#unknown1086: row.field(1086usize + offset)?.into_u8()?, + r#unknown1087: row.field(1087usize + offset)?.into_u8()?, + r#unknown1088: row.field(1088usize + offset)?.into_u8()?, + r#unknown1089: row.field(1089usize + offset)?.into_u8()?, + r#unknown1090: row.field(1090usize + offset)?.into_u8()?, + r#unknown1091: row.field(1091usize + offset)?.into_u8()?, + r#unknown1092: row.field(1092usize + offset)?.into_u8()?, + r#unknown1093: row.field(1093usize + offset)?.into_u8()?, + r#unknown1094: row.field(1094usize + offset)?.into_u8()?, + r#unknown1095: row.field(1095usize + offset)?.into_u8()?, + r#unknown1096: row.field(1096usize + offset)?.into_u8()?, + r#unknown1097: row.field(1097usize + offset)?.into_u8()?, + r#unknown1098: row.field(1098usize + offset)?.into_u8()?, + r#unknown1099: row.field(1099usize + offset)?.into_u8()?, + r#unknown1100: row.field(1100usize + offset)?.into_u8()?, + r#unknown1101: row.field(1101usize + offset)?.into_u8()?, + r#unknown1102: row.field(1102usize + offset)?.into_u8()?, + r#unknown1103: row.field(1103usize + offset)?.into_u8()?, + r#unknown1104: row.field(1104usize + offset)?.into_u8()?, + r#unknown1105: row.field(1105usize + offset)?.into_u8()?, + r#unknown1106: row.field(1106usize + offset)?.into_u8()?, + r#unknown1107: row.field(1107usize + offset)?.into_u8()?, + r#unknown1108: row.field(1108usize + offset)?.into_u8()?, + r#unknown1109: row.field(1109usize + offset)?.into_u8()?, + r#unknown1110: row.field(1110usize + offset)?.into_i32()?, + r#unknown1111: row.field(1111usize + offset)?.into_i32()?, + r#unknown1112: row.field(1112usize + offset)?.into_i32()?, + r#unknown1113: row.field(1113usize + offset)?.into_i32()?, + r#unknown1114: row.field(1114usize + offset)?.into_i32()?, + r#unknown1115: row.field(1115usize + offset)?.into_i32()?, + r#unknown1116: row.field(1116usize + offset)?.into_i32()?, + r#unknown1117: row.field(1117usize + offset)?.into_i32()?, + r#unknown1118: row.field(1118usize + offset)?.into_i32()?, + r#unknown1119: row.field(1119usize + offset)?.into_i32()?, + r#unknown1120: row.field(1120usize + offset)?.into_i32()?, + r#unknown1121: row.field(1121usize + offset)?.into_i32()?, + r#unknown1122: row.field(1122usize + offset)?.into_i32()?, + r#unknown1123: row.field(1123usize + offset)?.into_i32()?, + r#unknown1124: row.field(1124usize + offset)?.into_i32()?, + r#unknown1125: row.field(1125usize + offset)?.into_i32()?, + r#unknown1126: row.field(1126usize + offset)?.into_i32()?, + r#unknown1127: row.field(1127usize + offset)?.into_i32()?, + r#unknown1128: row.field(1128usize + offset)?.into_i32()?, + r#unknown1129: row.field(1129usize + offset)?.into_i32()?, + r#unknown1130: row.field(1130usize + offset)?.into_i32()?, + r#unknown1131: row.field(1131usize + offset)?.into_i32()?, + r#unknown1132: row.field(1132usize + offset)?.into_i32()?, + r#unknown1133: row.field(1133usize + offset)?.into_i32()?, + r#unknown1134: row.field(1134usize + offset)?.into_i32()?, + r#unknown1135: row.field(1135usize + offset)?.into_i32()?, + r#unknown1136: row.field(1136usize + offset)?.into_i32()?, + r#unknown1137: row.field(1137usize + offset)?.into_i32()?, + r#unknown1138: row.field(1138usize + offset)?.into_i32()?, + r#unknown1139: row.field(1139usize + offset)?.into_i32()?, + r#unknown1140: row.field(1140usize + offset)?.into_i32()?, + r#unknown1141: row.field(1141usize + offset)?.into_i32()?, + r#unknown1142: row.field(1142usize + offset)?.into_i32()?, + r#unknown1143: row.field(1143usize + offset)?.into_i32()?, + r#unknown1144: row.field(1144usize + offset)?.into_i32()?, + r#unknown1145: row.field(1145usize + offset)?.into_i32()?, + r#unknown1146: row.field(1146usize + offset)?.into_i32()?, + r#unknown1147: row.field(1147usize + offset)?.into_i32()?, + r#unknown1148: row.field(1148usize + offset)?.into_i32()?, + r#unknown1149: row.field(1149usize + offset)?.into_i32()?, + r#unknown1150: row.field(1150usize + offset)?.into_i32()?, + r#unknown1151: row.field(1151usize + offset)?.into_i32()?, + r#unknown1152: row.field(1152usize + offset)?.into_i32()?, + r#unknown1153: row.field(1153usize + offset)?.into_i32()?, + r#unknown1154: row.field(1154usize + offset)?.into_i32()?, + r#unknown1155: row.field(1155usize + offset)?.into_i32()?, + r#unknown1156: row.field(1156usize + offset)?.into_i32()?, + r#unknown1157: row.field(1157usize + offset)?.into_i32()?, + r#unknown1158: row.field(1158usize + offset)?.into_i32()?, + r#unknown1159: row.field(1159usize + offset)?.into_i32()?, + r#unknown1160: row.field(1160usize + offset)?.into_i32()?, + r#unknown1161: row.field(1161usize + offset)?.into_i32()?, + r#unknown1162: row.field(1162usize + offset)?.into_i32()?, + r#unknown1163: row.field(1163usize + offset)?.into_i32()?, + r#unknown1164: row.field(1164usize + offset)?.into_i32()?, + r#unknown1165: row.field(1165usize + offset)?.into_i32()?, }) } } diff --git a/src/sheet/house_retainer_pose.rs b/src/sheet/house_retainer_pose.rs index ea92f3ab..26ee0fb9 100644 --- a/src/sheet/house_retainer_pose.rs +++ b/src/sheet/house_retainer_pose.rs @@ -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 HouseRetainerPose { fn name() -> String { diff --git a/src/sheet/housing_appeal.rs b/src/sheet/housing_appeal.rs index 3379e7ca..f57e91d8 100644 --- a/src/sheet/housing_appeal.rs +++ b/src/sheet/housing_appeal.rs @@ -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 HousingAppeal { fn name() -> String { "HousingAppeal".to_string() diff --git a/src/sheet/housing_employment_npc_list.rs b/src/sheet/housing_employment_npc_list.rs index 0ea568e9..fedab172 100644 --- a/src/sheet/housing_employment_npc_list.rs +++ b/src/sheet/housing_employment_npc_list.rs @@ -1,9 +1,9 @@ -use std::vec::Vec; -use crate::utility::read_array; -use std::result::Result; -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use crate::utility::read_array; +use ironworks::excel::Row; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for HousingEmploymentNpcList { fn name() -> String { "HousingEmploymentNpcList".to_string() diff --git a/src/sheet/housing_employment_npc_race.rs b/src/sheet/housing_employment_npc_race.rs index c8df3a44..04f52184 100644 --- a/src/sheet/housing_employment_npc_race.rs +++ b/src/sheet/housing_employment_npc_race.rs @@ -1,8 +1,8 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; -use std::result::Result; -use crate::error::PopulateError; use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for HousingEmploymentNpcRace { fn name() -> String { "HousingEmploymentNpcRace".to_string() diff --git a/src/sheet/housing_exterior.rs b/src/sheet/housing_exterior.rs index bfb5d6bc..adae2c29 100644 --- a/src/sheet/housing_exterior.rs +++ b/src/sheet/housing_exterior.rs @@ -1,8 +1,8 @@ -use ironworks::sestring::SeString; -use std::result::Result; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for HousingExterior { fn name() -> String { "HousingExterior".to_string() diff --git a/src/sheet/housing_furniture.rs b/src/sheet/housing_furniture.rs index d49f3099..bf4f69b7 100644 --- a/src/sheet/housing_furniture.rs +++ b/src/sheet/housing_furniture.rs @@ -1,7 +1,7 @@ -use std::result::Result; -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for HousingFurniture { fn name() -> String { "HousingFurniture".to_string() @@ -22,7 +22,12 @@ pub struct HousingFurniture { pub r#custom_talk: u32, pub r#item: u32, pub r#destroy_on_removal: bool, - pub r#tooltip: bool, + pub r#unknown9: bool, + pub r#unknown10: u8, + pub r#unknown11: u8, + pub r#unknown12: u8, + pub r#unknown13: bool, + pub r#unknown14: bool, } impl HousingFurniture { pub fn populate(row: &Row, offset: usize) -> Result { @@ -36,7 +41,12 @@ impl HousingFurniture { r#custom_talk: row.field(6usize + offset)?.into_u32()?, r#item: row.field(7usize + offset)?.into_u32()?, r#destroy_on_removal: row.field(8usize + offset)?.into_bool()?, - r#tooltip: row.field(9usize + offset)?.into_bool()?, + r#unknown9: row.field(9usize + offset)?.into_bool()?, + r#unknown10: row.field(10usize + offset)?.into_u8()?, + r#unknown11: row.field(11usize + offset)?.into_u8()?, + r#unknown12: row.field(12usize + offset)?.into_u8()?, + r#unknown13: row.field(13usize + offset)?.into_bool()?, + r#unknown14: row.field(14usize + offset)?.into_bool()?, }) } } diff --git a/src/sheet/housing_land_set.rs b/src/sheet/housing_land_set.rs index 71aeb8f9..79b47940 100644 --- a/src/sheet/housing_land_set.rs +++ b/src/sheet/housing_land_set.rs @@ -1,9 +1,9 @@ -use std::result::Result; -use crate::utility::read_array; -use std::vec::Vec; use crate::error::PopulateError; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; +use crate::utility::read_array; +use ironworks::excel::Row; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for HousingLandSet { fn name() -> String { "HousingLandSet".to_string() @@ -138,6 +138,8 @@ pub struct HousingLandSet { pub r#unknown238: u32, pub r#unknown239: u32, pub r#initial_price: Vec, + pub r#unknown300: u32, + pub r#unknown301: u32, } impl HousingLandSet { pub fn populate(row: &Row, offset: usize) -> Result { @@ -280,6 +282,8 @@ impl HousingLandSet { 1usize, |offset| { Result::Ok(row.field(240usize + offset)?.into_u32()?) }, )?, + r#unknown300: row.field(300usize + offset)?.into_u32()?, + r#unknown301: row.field(301usize + offset)?.into_u32()?, }) } } diff --git a/src/sheet/housing_map_marker_info.rs b/src/sheet/housing_map_marker_info.rs index 91544203..33e62e7d 100644 --- a/src/sheet/housing_map_marker_info.rs +++ b/src/sheet/housing_map_marker_info.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; -use std::result::Result; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for HousingMapMarkerInfo { fn name() -> String { "HousingMapMarkerInfo".to_string() diff --git a/src/sheet/housing_merchant_pose.rs b/src/sheet/housing_merchant_pose.rs index ed5e5e7c..e4e24dce 100644 --- a/src/sheet/housing_merchant_pose.rs +++ b/src/sheet/housing_merchant_pose.rs @@ -1,8 +1,8 @@ use crate::error::PopulateError; -use ironworks::sestring::SeString; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use ironworks::sestring::SeString; use std::result::Result; -use crate::metadata::MetadataAdapter; impl MetadataAdapter for HousingMerchantPose { fn name() -> String { "HousingMerchantPose".to_string() diff --git a/src/sheet/housing_placement.rs b/src/sheet/housing_placement.rs index 8eab1bee..11d441b3 100644 --- a/src/sheet/housing_placement.rs +++ b/src/sheet/housing_placement.rs @@ -1,8 +1,8 @@ -use std::result::Result; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for HousingPlacement { fn name() -> String { "HousingPlacement".to_string() diff --git a/src/sheet/housing_preset.rs b/src/sheet/housing_preset.rs index 2f897dec..e92aef1c 100644 --- a/src/sheet/housing_preset.rs +++ b/src/sheet/housing_preset.rs @@ -1,8 +1,8 @@ -use std::result::Result; -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for HousingPreset { fn name() -> String { "HousingPreset".to_string() diff --git a/src/sheet/housing_united_exterior.rs b/src/sheet/housing_united_exterior.rs index 570986f6..4322292d 100644 --- a/src/sheet/housing_united_exterior.rs +++ b/src/sheet/housing_united_exterior.rs @@ -1,9 +1,9 @@ -use ironworks::excel::Row; -use std::vec::Vec; -use std::result::Result; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use crate::utility::read_array; -use crate::error::PopulateError; +use ironworks::excel::Row; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for HousingUnitedExterior { fn name() -> String { "HousingUnitedExterior".to_string() diff --git a/src/sheet/housing_yard_object.rs b/src/sheet/housing_yard_object.rs index df1f8930..2b6deec3 100644 --- a/src/sheet/housing_yard_object.rs +++ b/src/sheet/housing_yard_object.rs @@ -1,7 +1,7 @@ -use std::result::Result; -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 HousingYardObject { fn name() -> String { "HousingYardObject".to_string() @@ -21,6 +21,13 @@ pub struct HousingYardObject { pub r#custom_talk: u32, pub r#item: u32, pub r#destroy_on_removal: bool, + pub r#unknown8: bool, + pub r#unknown9: bool, + pub r#unknown10: u8, + pub r#unknown11: u8, + pub r#unknown12: u8, + pub r#unknown13: bool, + pub r#unknown14: bool, } impl HousingYardObject { pub fn populate(row: &Row, offset: usize) -> Result { @@ -33,6 +40,13 @@ impl HousingYardObject { r#custom_talk: row.field(5usize + offset)?.into_u32()?, r#item: row.field(6usize + offset)?.into_u32()?, r#destroy_on_removal: row.field(7usize + offset)?.into_bool()?, + r#unknown8: row.field(8usize + offset)?.into_bool()?, + r#unknown9: row.field(9usize + offset)?.into_bool()?, + r#unknown10: row.field(10usize + offset)?.into_u8()?, + r#unknown11: row.field(11usize + offset)?.into_u8()?, + r#unknown12: row.field(12usize + offset)?.into_u8()?, + r#unknown13: row.field(13usize + offset)?.into_bool()?, + r#unknown14: row.field(14usize + offset)?.into_bool()?, }) } } diff --git a/src/sheet/how_to.rs b/src/sheet/how_to.rs index 887ffdef..b843dd53 100644 --- a/src/sheet/how_to.rs +++ b/src/sheet/how_to.rs @@ -1,10 +1,10 @@ -use crate::utility::read_array; -use std::vec::Vec; -use std::result::Result; use crate::error::PopulateError; -use ironworks::sestring::SeString; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; +use crate::utility::read_array; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for HowTo { fn name() -> String { "HowTo".to_string() diff --git a/src/sheet/how_to_category.rs b/src/sheet/how_to_category.rs index e727a9a7..d266fd9e 100644 --- a/src/sheet/how_to_category.rs +++ b/src/sheet/how_to_category.rs @@ -1,7 +1,7 @@ -use ironworks::sestring::SeString; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; -use crate::error::PopulateError; +use ironworks::sestring::SeString; use std::result::Result; impl MetadataAdapter for HowToCategory { fn name() -> String { diff --git a/src/sheet/how_to_page.rs b/src/sheet/how_to_page.rs index 1bb741e0..d53a9d73 100644 --- a/src/sheet/how_to_page.rs +++ b/src/sheet/how_to_page.rs @@ -1,10 +1,10 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::vec::Vec; use crate::utility::read_array; -use ironworks::sestring::SeString; use ironworks::excel::Row; +use ironworks::sestring::SeString; use std::result::Result; -use crate::error::PopulateError; +use std::vec::Vec; impl MetadataAdapter for HowToPage { fn name() -> String { "HowToPage".to_string() diff --git a/src/sheet/huge_craftworks_npc.rs b/src/sheet/huge_craftworks_npc.rs index 99cbefa5..dde78c38 100644 --- a/src/sheet/huge_craftworks_npc.rs +++ b/src/sheet/huge_craftworks_npc.rs @@ -1,8 +1,9 @@ +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 crate::error::PopulateError; -use crate::metadata::MetadataAdapter; use std::vec::Vec; impl MetadataAdapter for HugeCraftworksNpc { fn name() -> String { @@ -84,6 +85,12 @@ pub struct HugeCraftworksNpc { pub r#unknown81: bool, pub r#qty_item_unkown: Vec, pub r#transient: u8, + pub r#unknown87: u8, + pub r#unknown88: u8, + pub r#unknown89: u8, + pub r#unknown90: u8, + pub r#unknown91: u8, + pub r#unknown92: SeString, } impl HugeCraftworksNpc { pub fn populate(row: &Row, offset: usize) -> Result { @@ -187,6 +194,12 @@ impl HugeCraftworksNpc { |offset| { Result::Ok(row.field(82usize + offset)?.into_bool()?) }, )?, r#transient: row.field(86usize + offset)?.into_u8()?, + r#unknown87: row.field(87usize + offset)?.into_u8()?, + r#unknown88: row.field(88usize + offset)?.into_u8()?, + r#unknown89: row.field(89usize + offset)?.into_u8()?, + r#unknown90: row.field(90usize + offset)?.into_u8()?, + r#unknown91: row.field(91usize + offset)?.into_u8()?, + r#unknown92: row.field(92usize + offset)?.into_string()?, }) } } diff --git a/src/sheet/huge_craftworks_rank.rs b/src/sheet/huge_craftworks_rank.rs index 14dc146e..a1e62927 100644 --- a/src/sheet/huge_craftworks_rank.rs +++ b/src/sheet/huge_craftworks_rank.rs @@ -1,7 +1,7 @@ use crate::error::PopulateError; -use std::result::Result; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for HugeCraftworksRank { fn name() -> String { "HugeCraftworksRank".to_string() @@ -15,12 +15,14 @@ impl MetadataAdapter for HugeCraftworksRank { pub struct HugeCraftworksRank { pub r#crafter_level: u8, pub r#exp_reward_per_item: u32, + pub r#unknown2: u8, } impl HugeCraftworksRank { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#crafter_level: row.field(0usize + offset)?.into_u8()?, r#exp_reward_per_item: row.field(1usize + offset)?.into_u32()?, + r#unknown2: row.field(2usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/hwd_announce.rs b/src/sheet/hwd_announce.rs index f9b80c94..9e2f36bc 100644 --- a/src/sheet/hwd_announce.rs +++ b/src/sheet/hwd_announce.rs @@ -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; -use crate::metadata::MetadataAdapter; impl MetadataAdapter for HWDAnnounce { fn name() -> String { "HWDAnnounce".to_string() @@ -16,12 +16,16 @@ impl MetadataAdapter for HWDAnnounce { pub struct HWDAnnounce { pub r#name: SeString, pub r#enpc: u32, + pub r#unknown2: u8, + pub r#unknown3: u8, } impl HWDAnnounce { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#name: row.field(0usize + offset)?.into_string()?, r#enpc: row.field(1usize + offset)?.into_u32()?, + r#unknown2: row.field(2usize + offset)?.into_u8()?, + r#unknown3: row.field(3usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/hwd_crafter_supply.rs b/src/sheet/hwd_crafter_supply.rs index 62fe9c39..4c40fbdb 100644 --- a/src/sheet/hwd_crafter_supply.rs +++ b/src/sheet/hwd_crafter_supply.rs @@ -1,9 +1,9 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use crate::utility::read_array; use ironworks::excel::Row; use std::result::Result; -use crate::metadata::MetadataAdapter; -use crate::error::PopulateError; use std::vec::Vec; -use crate::utility::read_array; impl MetadataAdapter for HWDCrafterSupply { fn name() -> String { "HWDCrafterSupply".to_string() diff --git a/src/sheet/hwd_crafter_supply_reward.rs b/src/sheet/hwd_crafter_supply_reward.rs index fdd8fc7a..42bca0ee 100644 --- a/src/sheet/hwd_crafter_supply_reward.rs +++ b/src/sheet/hwd_crafter_supply_reward.rs @@ -1,7 +1,7 @@ -use std::result::Result; -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for HWDCrafterSupplyReward { fn name() -> String { "HWDCrafterSupplyReward".to_string() diff --git a/src/sheet/hwd_crafter_supply_term.rs b/src/sheet/hwd_crafter_supply_term.rs index 856943b3..2cee8296 100644 --- a/src/sheet/hwd_crafter_supply_term.rs +++ b/src/sheet/hwd_crafter_supply_term.rs @@ -1,8 +1,8 @@ use crate::error::PopulateError; -use std::result::Result; use crate::metadata::MetadataAdapter; -use ironworks::sestring::SeString; use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for HWDCrafterSupplyTerm { fn name() -> String { "HWDCrafterSupplyTerm".to_string() diff --git a/src/sheet/hwd_dev_layer_control.rs b/src/sheet/hwd_dev_layer_control.rs index 4a9f1445..c4eea499 100644 --- a/src/sheet/hwd_dev_layer_control.rs +++ b/src/sheet/hwd_dev_layer_control.rs @@ -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 HWDDevLayerControl { fn name() -> String { "HWDDevLayerControl".to_string() @@ -12,9 +12,15 @@ impl MetadataAdapter for HWDDevLayerControl { } } #[derive(Debug)] -pub struct HWDDevLayerControl {} +pub struct HWDDevLayerControl { + pub r#unknown0: u8, + pub r#unknown1: u8, +} impl HWDDevLayerControl { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u8()?, + r#unknown1: row.field(1usize + offset)?.into_u8()?, + }) } } diff --git a/src/sheet/hwd_dev_level_ui.rs b/src/sheet/hwd_dev_level_ui.rs index a88e142a..f5a9c732 100644 --- a/src/sheet/hwd_dev_level_ui.rs +++ b/src/sheet/hwd_dev_level_ui.rs @@ -1,7 +1,7 @@ -use std::result::Result; -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for HWDDevLevelUI { fn name() -> String { "HWDDevLevelUI".to_string() @@ -12,9 +12,15 @@ impl MetadataAdapter for HWDDevLevelUI { } } #[derive(Debug)] -pub struct HWDDevLevelUI {} +pub struct HWDDevLevelUI { + pub r#unknown0: u8, + pub r#unknown1: u16, +} impl HWDDevLevelUI { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u8()?, + r#unknown1: row.field(1usize + offset)?.into_u16()?, + }) } } diff --git a/src/sheet/hwd_dev_lively.rs b/src/sheet/hwd_dev_lively.rs index 2c0dd134..312bae57 100644 --- a/src/sheet/hwd_dev_lively.rs +++ b/src/sheet/hwd_dev_lively.rs @@ -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 HWDDevLively { fn name() -> String { "HWDDevLively".to_string() @@ -14,11 +14,15 @@ impl MetadataAdapter for HWDDevLively { #[derive(Debug)] pub struct HWDDevLively { pub r#enpc: u32, + pub r#unknown1: u16, + pub r#unknown2: u8, } impl HWDDevLively { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#enpc: row.field(0usize + offset)?.into_u32()?, + r#unknown1: row.field(1usize + offset)?.into_u16()?, + r#unknown2: row.field(2usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/hwd_dev_progress.rs b/src/sheet/hwd_dev_progress.rs index 9100dc95..f0768e79 100644 --- a/src/sheet/hwd_dev_progress.rs +++ b/src/sheet/hwd_dev_progress.rs @@ -1,7 +1,7 @@ use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for HWDDevProgress { fn name() -> String { "HWDDevProgress".to_string() diff --git a/src/sheet/hwd_gathere_inspect_term.rs b/src/sheet/hwd_gathere_inspect_term.rs index 528d1f89..aad8f658 100644 --- a/src/sheet/hwd_gathere_inspect_term.rs +++ b/src/sheet/hwd_gathere_inspect_term.rs @@ -1,7 +1,7 @@ use crate::error::PopulateError; -use ironworks::sestring::SeString; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; use std::result::Result; impl MetadataAdapter for HWDGathereInspectTerm { fn name() -> String { diff --git a/src/sheet/hwd_gatherer_inspection.rs b/src/sheet/hwd_gatherer_inspection.rs index dc6acd55..6ee0bc96 100644 --- a/src/sheet/hwd_gatherer_inspection.rs +++ b/src/sheet/hwd_gatherer_inspection.rs @@ -1,9 +1,9 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; -use std::vec::Vec; use crate::utility::read_array; -use crate::error::PopulateError; use ironworks::excel::Row; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for HWDGathererInspection { fn name() -> String { "HWDGathererInspection".to_string() diff --git a/src/sheet/hwd_gatherer_inspection_reward.rs b/src/sheet/hwd_gatherer_inspection_reward.rs index 969d8e57..c7d3ecb0 100644 --- a/src/sheet/hwd_gatherer_inspection_reward.rs +++ b/src/sheet/hwd_gatherer_inspection_reward.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; use crate::error::PopulateError; -use std::result::Result; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for HWDGathererInspectionReward { fn name() -> String { "HWDGathererInspectionReward".to_string() diff --git a/src/sheet/hwd_info_board_article.rs b/src/sheet/hwd_info_board_article.rs index 4874dd0c..4a2ca349 100644 --- a/src/sheet/hwd_info_board_article.rs +++ b/src/sheet/hwd_info_board_article.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; -use ironworks::sestring::SeString; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; use std::result::Result; impl MetadataAdapter for HWDInfoBoardArticle { fn name() -> String { diff --git a/src/sheet/hwd_info_board_article_transient.rs b/src/sheet/hwd_info_board_article_transient.rs index 98639364..d63ba4a7 100644 --- a/src/sheet/hwd_info_board_article_transient.rs +++ b/src/sheet/hwd_info_board_article_transient.rs @@ -1,8 +1,8 @@ -use ironworks::sestring::SeString; -use crate::metadata::MetadataAdapter; -use std::result::Result; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for HWDInfoBoardArticleTransient { fn name() -> String { "HWDInfoBoardArticleTransient".to_string() diff --git a/src/sheet/hwd_info_board_article_type.rs b/src/sheet/hwd_info_board_article_type.rs index e7ddd8b9..585c7223 100644 --- a/src/sheet/hwd_info_board_article_type.rs +++ b/src/sheet/hwd_info_board_article_type.rs @@ -1,8 +1,8 @@ -use std::result::Result; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use ironworks::sestring::SeString; use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for HWDInfoBoardArticleType { fn name() -> String { "HWDInfoBoardArticleType".to_string() diff --git a/src/sheet/hwd_level_change_deception.rs b/src/sheet/hwd_level_change_deception.rs index 13beecb2..e34d4c81 100644 --- a/src/sheet/hwd_level_change_deception.rs +++ b/src/sheet/hwd_level_change_deception.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use std::result::Result; -use crate::error::PopulateError; impl MetadataAdapter for HWDLevelChangeDeception { fn name() -> String { "HWDLevelChangeDeception".to_string() diff --git a/src/sheet/hwd_shared_group.rs b/src/sheet/hwd_shared_group.rs index efed281f..136b9702 100644 --- a/src/sheet/hwd_shared_group.rs +++ b/src/sheet/hwd_shared_group.rs @@ -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 HWDSharedGroup { fn name() -> String { "HWDSharedGroup".to_string() diff --git a/src/sheet/hwd_shared_group_control_param.rs b/src/sheet/hwd_shared_group_control_param.rs index 87252979..8bc9ba00 100644 --- a/src/sheet/hwd_shared_group_control_param.rs +++ b/src/sheet/hwd_shared_group_control_param.rs @@ -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 HWDSharedGroupControlParam { fn name() -> String { diff --git a/src/sheet/icon_language.rs b/src/sheet/icon_language.rs index b71cc76d..63717606 100644 --- a/src/sheet/icon_language.rs +++ b/src/sheet/icon_language.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use std::result::Result; -use crate::error::PopulateError; impl MetadataAdapter for IconLanguage { fn name() -> String { "IconLanguage".to_string() @@ -12,9 +12,31 @@ impl MetadataAdapter for IconLanguage { } } #[derive(Debug)] -pub struct IconLanguage {} +pub struct IconLanguage { + pub r#unknown0: bool, + pub r#unknown1: bool, + pub r#unknown2: bool, + pub r#unknown3: bool, + pub r#unknown4: bool, + pub r#unknown5: bool, + pub r#unknown6: bool, + pub r#unknown7: bool, + pub r#unknown8: bool, + pub r#unknown9: bool, +} impl IconLanguage { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_bool()?, + r#unknown1: row.field(1usize + offset)?.into_bool()?, + r#unknown2: row.field(2usize + offset)?.into_bool()?, + r#unknown3: row.field(3usize + offset)?.into_bool()?, + r#unknown4: row.field(4usize + offset)?.into_bool()?, + r#unknown5: row.field(5usize + offset)?.into_bool()?, + r#unknown6: row.field(6usize + offset)?.into_bool()?, + r#unknown7: row.field(7usize + offset)?.into_bool()?, + r#unknown8: row.field(8usize + offset)?.into_bool()?, + r#unknown9: row.field(9usize + offset)?.into_bool()?, + }) } } diff --git a/src/sheet/ikd_content_bonus.rs b/src/sheet/ikd_content_bonus.rs index 11eb4665..b18d03c6 100644 --- a/src/sheet/ikd_content_bonus.rs +++ b/src/sheet/ikd_content_bonus.rs @@ -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 ironworks::excel::Row; -use crate::error::PopulateError; impl MetadataAdapter for IKDContentBonus { fn name() -> String { "IKDContentBonus".to_string() diff --git a/src/sheet/ikd_fish_param.rs b/src/sheet/ikd_fish_param.rs index 310111ec..94fbae5a 100644 --- a/src/sheet/ikd_fish_param.rs +++ b/src/sheet/ikd_fish_param.rs @@ -1,7 +1,7 @@ use crate::error::PopulateError; -use std::result::Result; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for IKDFishParam { fn name() -> String { "IKDFishParam".to_string() @@ -15,12 +15,14 @@ impl MetadataAdapter for IKDFishParam { pub struct IKDFishParam { pub r#fish: u32, pub r#ikd_content_bonus: u8, + pub r#unknown2: u8, } impl IKDFishParam { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#fish: row.field(0usize + offset)?.into_u32()?, r#ikd_content_bonus: row.field(1usize + offset)?.into_u8()?, + r#unknown2: row.field(2usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/ikd_route.rs b/src/sheet/ikd_route.rs index 8db2369e..4883ee48 100644 --- a/src/sheet/ikd_route.rs +++ b/src/sheet/ikd_route.rs @@ -1,10 +1,10 @@ use crate::error::PopulateError; -use std::result::Result; -use ironworks::excel::Row; -use std::vec::Vec; use crate::metadata::MetadataAdapter; use crate::utility::read_array; +use ironworks::excel::Row; use ironworks::sestring::SeString; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for IKDRoute { fn name() -> String { "IKDRoute".to_string() @@ -31,7 +31,10 @@ impl IKDRoute_Unnamed0 { pub struct IKDRoute { pub r#unnamed0: Vec, pub r#image: u32, - pub r#territory_type: u32, + pub r#unknown7: u32, + pub r#unknown8: u32, + pub r#content_finder_condition: u32, + pub r#unknown10: u32, pub r#name: SeString, } impl IKDRoute { @@ -44,8 +47,11 @@ impl IKDRoute { |offset| { Result::Ok(IKDRoute_Unnamed0::populate(row, offset)?) }, )?, r#image: row.field(6usize + offset)?.into_u32()?, - r#territory_type: row.field(7usize + offset)?.into_u32()?, - r#name: row.field(8usize + offset)?.into_string()?, + r#unknown7: row.field(7usize + offset)?.into_u32()?, + r#unknown8: row.field(8usize + offset)?.into_u32()?, + r#content_finder_condition: row.field(9usize + offset)?.into_u32()?, + r#unknown10: row.field(10usize + offset)?.into_u32()?, + r#name: row.field(11usize + offset)?.into_string()?, }) } } diff --git a/src/sheet/ikd_route_table.rs b/src/sheet/ikd_route_table.rs index 30d0e518..c07b6079 100644 --- a/src/sheet/ikd_route_table.rs +++ b/src/sheet/ikd_route_table.rs @@ -1,7 +1,7 @@ -use std::result::Result; -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for IKDRouteTable { fn name() -> String { "IKDRouteTable".to_string() @@ -14,11 +14,13 @@ impl MetadataAdapter for IKDRouteTable { #[derive(Debug)] pub struct IKDRouteTable { pub r#route: u32, + pub r#unknown1: u32, } impl IKDRouteTable { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#route: row.field(0usize + offset)?.into_u32()?, + r#unknown1: row.field(1usize + offset)?.into_u32()?, }) } } diff --git a/src/sheet/ikd_spot.rs b/src/sheet/ikd_spot.rs index 660f5f28..d6e234f7 100644 --- a/src/sheet/ikd_spot.rs +++ b/src/sheet/ikd_spot.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; -use std::result::Result; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for IKDSpot { fn name() -> String { "IKDSpot".to_string() diff --git a/src/sheet/inclusion_shop.rs b/src/sheet/inclusion_shop.rs index a914b17a..8ff47966 100644 --- a/src/sheet/inclusion_shop.rs +++ b/src/sheet/inclusion_shop.rs @@ -1,10 +1,10 @@ +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 crate::error::PopulateError; use std::vec::Vec; -use ironworks::sestring::SeString; -use ironworks::excel::Row; -use crate::metadata::MetadataAdapter; impl MetadataAdapter for InclusionShop { fn name() -> String { "InclusionShop".to_string() diff --git a/src/sheet/inclusion_shop_category.rs b/src/sheet/inclusion_shop_category.rs index 04a8b6fd..83fb6c08 100644 --- a/src/sheet/inclusion_shop_category.rs +++ b/src/sheet/inclusion_shop_category.rs @@ -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 InclusionShopCategory { fn name() -> String { "InclusionShopCategory".to_string() diff --git a/src/sheet/inclusion_shop_series.rs b/src/sheet/inclusion_shop_series.rs index a6f1d15d..7c56055c 100644 --- a/src/sheet/inclusion_shop_series.rs +++ b/src/sheet/inclusion_shop_series.rs @@ -1,7 +1,7 @@ -use std::result::Result; -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 InclusionShopSeries { fn name() -> String { "InclusionShopSeries".to_string() diff --git a/src/sheet/inclusion_shop_welcom.rs b/src/sheet/inclusion_shop_welcom.rs index 4c28230d..a2c90213 100644 --- a/src/sheet/inclusion_shop_welcom.rs +++ b/src/sheet/inclusion_shop_welcom.rs @@ -1,6 +1,6 @@ -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use std::result::Result; impl MetadataAdapter for InclusionShopWelcom { fn name() -> String { @@ -12,9 +12,17 @@ impl MetadataAdapter for InclusionShopWelcom { } } #[derive(Debug)] -pub struct InclusionShopWelcom {} +pub struct InclusionShopWelcom { + pub r#unknown0: u8, + pub r#unknown1: u8, + pub r#unknown2: u8, +} impl InclusionShopWelcom { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u8()?, + r#unknown1: row.field(1usize + offset)?.into_u8()?, + r#unknown2: row.field(2usize + offset)?.into_u8()?, + }) } } diff --git a/src/sheet/inclusion_shop_welcom_text.rs b/src/sheet/inclusion_shop_welcom_text.rs index be00712c..ed0064a3 100644 --- a/src/sheet/inclusion_shop_welcom_text.rs +++ b/src/sheet/inclusion_shop_welcom_text.rs @@ -1,7 +1,8 @@ -use std::result::Result; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; -use crate::error::PopulateError; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for InclusionShopWelcomText { fn name() -> String { "InclusionShopWelcomText".to_string() @@ -12,9 +13,13 @@ impl MetadataAdapter for InclusionShopWelcomText { } } #[derive(Debug)] -pub struct InclusionShopWelcomText {} +pub struct InclusionShopWelcomText { + pub r#unknown0: SeString, +} impl InclusionShopWelcomText { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_string()?, + }) } } diff --git a/src/sheet/individual_weather.rs b/src/sheet/individual_weather.rs index 7493bdf3..bd005f56 100644 --- a/src/sheet/individual_weather.rs +++ b/src/sheet/individual_weather.rs @@ -1,9 +1,9 @@ -use crate::utility::read_array; -use std::vec::Vec; use crate::error::PopulateError; -use std::result::Result; use crate::metadata::MetadataAdapter; +use crate::utility::read_array; use ironworks::excel::Row; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for IndividualWeather { fn name() -> String { "IndividualWeather".to_string() @@ -26,6 +26,13 @@ pub struct IndividualWeather { pub r#unknown13: u8, pub r#unknown14: u32, pub r#quest: Vec, + pub r#unknown21: u32, + pub r#unknown22: u32, + pub r#unknown23: u32, + pub r#unknown24: u32, + pub r#unknown25: u32, + pub r#unknown26: u32, + pub r#unknown27: u32, } impl IndividualWeather { pub fn populate(row: &Row, offset: usize) -> Result { @@ -51,6 +58,13 @@ impl IndividualWeather { 1usize, |offset| { Result::Ok(row.field(15usize + offset)?.into_u32()?) }, )?, + r#unknown21: row.field(21usize + offset)?.into_u32()?, + r#unknown22: row.field(22usize + offset)?.into_u32()?, + r#unknown23: row.field(23usize + offset)?.into_u32()?, + r#unknown24: row.field(24usize + offset)?.into_u32()?, + r#unknown25: row.field(25usize + offset)?.into_u32()?, + r#unknown26: row.field(26usize + offset)?.into_u32()?, + r#unknown27: row.field(27usize + offset)?.into_u32()?, }) } } diff --git a/src/sheet/instance_content.rs b/src/sheet/instance_content.rs index 563a5c15..e41f1bdc 100644 --- a/src/sheet/instance_content.rs +++ b/src/sheet/instance_content.rs @@ -1,9 +1,9 @@ -use std::vec::Vec; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use ironworks::excel::Row; use crate::utility::read_array; +use ironworks::excel::Row; use std::result::Result; -use crate::error::PopulateError; +use std::vec::Vec; impl MetadataAdapter for InstanceContent { fn name() -> String { "InstanceContent".to_string() @@ -15,23 +15,23 @@ impl MetadataAdapter for InstanceContent { } #[derive(Debug)] pub struct InstanceContent_BossExp { - pub r#boss_exp: u32, + pub r#boss_exp: u16, } impl InstanceContent_BossExp { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { - r#boss_exp: row.field(26usize + offset)?.into_u32()?, + r#boss_exp: row.field(26usize + offset)?.into_u16()?, }) } } #[derive(Debug)] pub struct InstanceContent_BossCurrencyA { - pub r#boss_currency_a: u16, + pub r#boss_currency_a: u32, } impl InstanceContent_BossCurrencyA { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { - r#boss_currency_a: row.field(31usize + offset)?.into_u16()?, + r#boss_currency_a: row.field(31usize + offset)?.into_u32()?, }) } } @@ -81,23 +81,41 @@ pub struct InstanceContent { pub r#new_player_bonus_a: u16, pub r#new_player_bonus_b: u16, pub r#final_boss_exp: u32, - pub r#unknown22: u32, - pub r#final_boss_currency_a: u16, + pub r#unknown22: u8, + pub r#final_boss_currency_a: u32, pub r#final_boss_currency_b: u16, pub r#final_boss_currency_c: u16, pub r#boss_exp: Vec, pub r#boss_currency_a: Vec, pub r#boss_currency_b: Vec, pub r#boss_currency_c: Vec, - pub r#instance_clear_exp: u32, + pub r#instance_clear_exp: u16, pub r#instance_clear_gil: u32, pub r#instance_content_reward_item: u32, - pub r#unknown49: u8, - pub r#unknown50: u32, - pub r#instance_content_buff: i32, - pub r#unknown52: bool, - pub r#req_instance: u32, - pub r#party_condition: i16, + pub r#unknown49: u32, + pub r#unknown50: u16, + pub r#instance_content_buff: bool, + pub r#unknown52: u32, + pub r#req_instance: i32, + pub r#party_condition: bool, + pub r#unknown55: u32, + pub r#unknown56: i16, + pub r#unknown57: u8, + pub r#unknown58: u8, + pub r#unknown59: u8, + pub r#unknown60: u8, + pub r#unknown61: u8, + pub r#unknown62: bool, + pub r#unknown63: u16, + pub r#unknown64: u16, + pub r#unknown65: u16, + pub r#unknown66: u8, + pub r#unknown67: u16, + pub r#unknown68: u16, + pub r#unknown69: bool, + pub r#unknown70: u16, + pub r#unknown71: u16, + pub r#unknown72: bool, } impl InstanceContent { pub fn populate(row: &Row, offset: usize) -> Result { @@ -132,8 +150,8 @@ impl InstanceContent { r#new_player_bonus_a: row.field(19usize + offset)?.into_u16()?, r#new_player_bonus_b: row.field(20usize + offset)?.into_u16()?, r#final_boss_exp: row.field(21usize + offset)?.into_u32()?, - r#unknown22: row.field(22usize + offset)?.into_u32()?, - r#final_boss_currency_a: row.field(23usize + offset)?.into_u16()?, + r#unknown22: row.field(22usize + offset)?.into_u8()?, + r#final_boss_currency_a: row.field(23usize + offset)?.into_u32()?, r#final_boss_currency_b: row.field(24usize + offset)?.into_u16()?, r#final_boss_currency_c: row.field(25usize + offset)?.into_u16()?, r#boss_exp: read_array( @@ -166,15 +184,33 @@ impl InstanceContent { Result::Ok(InstanceContent_BossCurrencyC::populate(row, offset)?) }, )?, - r#instance_clear_exp: row.field(46usize + offset)?.into_u32()?, + r#instance_clear_exp: row.field(46usize + offset)?.into_u16()?, r#instance_clear_gil: row.field(47usize + offset)?.into_u32()?, r#instance_content_reward_item: row.field(48usize + offset)?.into_u32()?, - r#unknown49: row.field(49usize + offset)?.into_u8()?, - r#unknown50: row.field(50usize + offset)?.into_u32()?, - r#instance_content_buff: row.field(51usize + offset)?.into_i32()?, - r#unknown52: row.field(52usize + offset)?.into_bool()?, - r#req_instance: row.field(53usize + offset)?.into_u32()?, - r#party_condition: row.field(54usize + offset)?.into_i16()?, + r#unknown49: row.field(49usize + offset)?.into_u32()?, + r#unknown50: row.field(50usize + offset)?.into_u16()?, + r#instance_content_buff: row.field(51usize + offset)?.into_bool()?, + r#unknown52: row.field(52usize + offset)?.into_u32()?, + r#req_instance: row.field(53usize + offset)?.into_i32()?, + r#party_condition: row.field(54usize + offset)?.into_bool()?, + r#unknown55: row.field(55usize + offset)?.into_u32()?, + r#unknown56: row.field(56usize + offset)?.into_i16()?, + r#unknown57: row.field(57usize + offset)?.into_u8()?, + r#unknown58: row.field(58usize + offset)?.into_u8()?, + r#unknown59: row.field(59usize + offset)?.into_u8()?, + r#unknown60: row.field(60usize + offset)?.into_u8()?, + r#unknown61: row.field(61usize + offset)?.into_u8()?, + r#unknown62: row.field(62usize + offset)?.into_bool()?, + r#unknown63: row.field(63usize + offset)?.into_u16()?, + r#unknown64: row.field(64usize + offset)?.into_u16()?, + r#unknown65: row.field(65usize + offset)?.into_u16()?, + r#unknown66: row.field(66usize + offset)?.into_u8()?, + r#unknown67: row.field(67usize + offset)?.into_u16()?, + r#unknown68: row.field(68usize + offset)?.into_u16()?, + r#unknown69: row.field(69usize + offset)?.into_bool()?, + r#unknown70: row.field(70usize + offset)?.into_u16()?, + r#unknown71: row.field(71usize + offset)?.into_u16()?, + r#unknown72: row.field(72usize + offset)?.into_bool()?, }) } } diff --git a/src/sheet/instance_content_buff.rs b/src/sheet/instance_content_buff.rs index 24c217f0..10697cd4 100644 --- a/src/sheet/instance_content_buff.rs +++ b/src/sheet/instance_content_buff.rs @@ -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 InstanceContentBuff { fn name() -> String { "InstanceContentBuff".to_string() diff --git a/src/sheet/instance_content_cs_bonus.rs b/src/sheet/instance_content_cs_bonus.rs deleted file mode 100644 index a7c720f1..00000000 --- a/src/sheet/instance_content_cs_bonus.rs +++ /dev/null @@ -1,26 +0,0 @@ -use ironworks::excel::Row; -use crate::error::PopulateError; -use crate::metadata::MetadataAdapter; -use std::result::Result; -impl MetadataAdapter for InstanceContentCSBonus { - fn name() -> String { - "InstanceContentCSBonus".to_string() - } - fn populate(row: &Row) -> Result { - let offset = 0; - Result::Ok(InstanceContentCSBonus::populate(row, offset)?) - } -} -#[derive(Debug)] -pub struct InstanceContentCSBonus { - pub r#instance: u16, - pub r#item: u32, -} -impl InstanceContentCSBonus { - pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self { - r#instance: row.field(0usize + offset)?.into_u16()?, - r#item: row.field(1usize + offset)?.into_u32()?, - }) - } -} diff --git a/src/sheet/instance_content_guide.rs b/src/sheet/instance_content_guide.rs index 597ae5b8..b4127221 100644 --- a/src/sheet/instance_content_guide.rs +++ b/src/sheet/instance_content_guide.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use std::result::Result; -use crate::error::PopulateError; impl MetadataAdapter for InstanceContentGuide { fn name() -> String { "InstanceContentGuide".to_string() @@ -14,11 +14,13 @@ impl MetadataAdapter for InstanceContentGuide { #[derive(Debug)] pub struct InstanceContentGuide { pub r#instance: u32, + pub r#unknown1: u32, } impl InstanceContentGuide { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#instance: row.field(0usize + offset)?.into_u32()?, + r#unknown1: row.field(1usize + offset)?.into_u32()?, }) } } diff --git a/src/sheet/instance_content_qic_data.rs b/src/sheet/instance_content_qic_data.rs index 81f78503..2f856150 100644 --- a/src/sheet/instance_content_qic_data.rs +++ b/src/sheet/instance_content_qic_data.rs @@ -12,9 +12,15 @@ impl MetadataAdapter for InstanceContentQICData { } } #[derive(Debug)] -pub struct InstanceContentQICData {} +pub struct InstanceContentQICData { + pub r#unknown0: u8, + pub r#unknown1: bool, +} impl InstanceContentQICData { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u8()?, + r#unknown1: row.field(1usize + offset)?.into_bool()?, + }) } } diff --git a/src/sheet/instance_content_text_data.rs b/src/sheet/instance_content_text_data.rs index 5ba40f03..f7db34ec 100644 --- a/src/sheet/instance_content_text_data.rs +++ b/src/sheet/instance_content_text_data.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; use crate::error::PopulateError; -use ironworks::sestring::SeString; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; use std::result::Result; impl MetadataAdapter for InstanceContentTextData { fn name() -> String { diff --git a/src/sheet/item.rs b/src/sheet/item.rs index 772ba5f3..1f0a9442 100644 --- a/src/sheet/item.rs +++ b/src/sheet/item.rs @@ -1,10 +1,10 @@ -use std::vec::Vec; -use std::result::Result; -use ironworks::sestring::SeString; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use crate::utility::read_array; use ironworks::excel::Row; -use crate::error::PopulateError; +use ironworks::sestring::SeString; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for Item { fn name() -> String { "Item".to_string() @@ -70,7 +70,7 @@ pub struct Item { pub r#price_mid: u32, pub r#price_low: u32, pub r#can_be_hq: bool, - pub r#is_dyeable: bool, + pub r#dye_count: u8, pub r#is_crest_worthy: bool, pub r#item_action: u16, pub r#cast_times: u8, @@ -83,7 +83,7 @@ pub struct Item { pub r#always_collectable: bool, pub r#aetherial_reduce: u16, pub r#level_equip: u8, - pub r#unknown41: u8, + pub r#required_pvp_rank: u8, pub r#equip_restriction: u8, pub r#class_job_category: u8, pub r#grand_company: u8, @@ -143,7 +143,7 @@ impl Item { r#price_mid: row.field(25usize + offset)?.into_u32()?, r#price_low: row.field(26usize + offset)?.into_u32()?, r#can_be_hq: row.field(27usize + offset)?.into_bool()?, - r#is_dyeable: row.field(28usize + offset)?.into_bool()?, + r#dye_count: row.field(28usize + offset)?.into_u8()?, r#is_crest_worthy: row.field(29usize + offset)?.into_bool()?, r#item_action: row.field(30usize + offset)?.into_u16()?, r#cast_times: row.field(31usize + offset)?.into_u8()?, @@ -156,7 +156,7 @@ impl Item { r#always_collectable: row.field(38usize + offset)?.into_bool()?, r#aetherial_reduce: row.field(39usize + offset)?.into_u16()?, r#level_equip: row.field(40usize + offset)?.into_u8()?, - r#unknown41: row.field(41usize + offset)?.into_u8()?, + r#required_pvp_rank: row.field(41usize + offset)?.into_u8()?, r#equip_restriction: row.field(42usize + offset)?.into_u8()?, r#class_job_category: row.field(43usize + offset)?.into_u8()?, r#grand_company: row.field(44usize + offset)?.into_u8()?, diff --git a/src/sheet/item_action.rs b/src/sheet/item_action.rs index 61519174..682fe02a 100644 --- a/src/sheet/item_action.rs +++ b/src/sheet/item_action.rs @@ -1,8 +1,8 @@ -use crate::utility::read_array; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; +use crate::utility::read_array; use ironworks::excel::Row; -use crate::error::PopulateError; +use std::result::Result; use std::vec::Vec; impl MetadataAdapter for ItemAction { fn name() -> String { diff --git a/src/sheet/item_action_telepo.rs b/src/sheet/item_action_telepo.rs index ead787fb..826d62a8 100644 --- a/src/sheet/item_action_telepo.rs +++ b/src/sheet/item_action_telepo.rs @@ -1,6 +1,6 @@ -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use std::result::Result; impl MetadataAdapter for ItemActionTelepo { fn name() -> String { diff --git a/src/sheet/item_barter_check.rs b/src/sheet/item_barter_check.rs index 820e3bba..7db68b4f 100644 --- a/src/sheet/item_barter_check.rs +++ b/src/sheet/item_barter_check.rs @@ -1,7 +1,7 @@ -use std::result::Result; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for ItemBarterCheck { fn name() -> String { "ItemBarterCheck".to_string() diff --git a/src/sheet/item_food.rs b/src/sheet/item_food.rs index 97fe18e9..5f9b9e29 100644 --- a/src/sheet/item_food.rs +++ b/src/sheet/item_food.rs @@ -1,9 +1,9 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use crate::utility::read_array; use ironworks::excel::Row; -use std::vec::Vec; -use crate::metadata::MetadataAdapter; use std::result::Result; -use crate::error::PopulateError; +use std::vec::Vec; impl MetadataAdapter for ItemFood { fn name() -> String { "ItemFood".to_string() diff --git a/src/sheet/item_level.rs b/src/sheet/item_level.rs index f957732f..a723aeb0 100644 --- a/src/sheet/item_level.rs +++ b/src/sheet/item_level.rs @@ -1,7 +1,7 @@ -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; -use std::result::Result; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for ItemLevel { fn name() -> String { "ItemLevel".to_string() @@ -86,6 +86,7 @@ pub struct ItemLevel { pub r#control: u16, pub r#gathering: u16, pub r#perception: u16, + pub r#unknown73: u16, } impl ItemLevel { pub fn populate(row: &Row, offset: usize) -> Result { @@ -163,6 +164,7 @@ impl ItemLevel { r#control: row.field(70usize + offset)?.into_u16()?, r#gathering: row.field(71usize + offset)?.into_u16()?, r#perception: row.field(72usize + offset)?.into_u16()?, + r#unknown73: row.field(73usize + offset)?.into_u16()?, }) } } diff --git a/src/sheet/item_repair_price.rs b/src/sheet/item_repair_price.rs index 60010cae..f016436e 100644 --- a/src/sheet/item_repair_price.rs +++ b/src/sheet/item_repair_price.rs @@ -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 ItemRepairPrice { fn name() -> String { "ItemRepairPrice".to_string() @@ -12,9 +12,13 @@ impl MetadataAdapter for ItemRepairPrice { } } #[derive(Debug)] -pub struct ItemRepairPrice {} +pub struct ItemRepairPrice { + pub r#unknown0: u16, +} impl ItemRepairPrice { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u16()?, + }) } } diff --git a/src/sheet/item_repair_resource.rs b/src/sheet/item_repair_resource.rs index 1df1d96e..a6f6f479 100644 --- a/src/sheet/item_repair_resource.rs +++ b/src/sheet/item_repair_resource.rs @@ -1,7 +1,7 @@ -use std::result::Result; -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for ItemRepairResource { fn name() -> String { "ItemRepairResource".to_string() diff --git a/src/sheet/item_retainer_level_up.rs b/src/sheet/item_retainer_level_up.rs index 4ddbdb7e..f1dff37f 100644 --- a/src/sheet/item_retainer_level_up.rs +++ b/src/sheet/item_retainer_level_up.rs @@ -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 ItemRetainerLevelUp { fn name() -> String { "ItemRetainerLevelUp".to_string() @@ -12,9 +12,15 @@ impl MetadataAdapter for ItemRetainerLevelUp { } } #[derive(Debug)] -pub struct ItemRetainerLevelUp {} +pub struct ItemRetainerLevelUp { + pub r#unknown0: u32, + pub r#unknown1: u16, +} impl ItemRetainerLevelUp { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u32()?, + r#unknown1: row.field(1usize + offset)?.into_u16()?, + }) } } diff --git a/src/sheet/item_search_category.rs b/src/sheet/item_search_category.rs index c6cf55e5..86609419 100644 --- a/src/sheet/item_search_category.rs +++ b/src/sheet/item_search_category.rs @@ -1,8 +1,8 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; -use std::result::Result; use ironworks::sestring::SeString; -use crate::error::PopulateError; +use std::result::Result; impl MetadataAdapter for ItemSearchCategory { fn name() -> String { "ItemSearchCategory".to_string() @@ -19,6 +19,7 @@ pub struct ItemSearchCategory { pub r#category: u8, pub r#order: u8, pub r#class_job: i8, + pub r#unknown5: bool, } impl ItemSearchCategory { pub fn populate(row: &Row, offset: usize) -> Result { @@ -28,6 +29,7 @@ impl ItemSearchCategory { r#category: row.field(2usize + offset)?.into_u8()?, r#order: row.field(3usize + offset)?.into_u8()?, r#class_job: row.field(4usize + offset)?.into_i8()?, + r#unknown5: row.field(5usize + offset)?.into_bool()?, }) } } diff --git a/src/sheet/item_series.rs b/src/sheet/item_series.rs index ea438bea..c2ef1870 100644 --- a/src/sheet/item_series.rs +++ b/src/sheet/item_series.rs @@ -1,8 +1,8 @@ -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use ironworks::sestring::SeString; use std::result::Result; -use ironworks::excel::Row; impl MetadataAdapter for ItemSeries { fn name() -> String { "ItemSeries".to_string() diff --git a/src/sheet/item_sort_category.rs b/src/sheet/item_sort_category.rs index 0deddac9..e259f3a9 100644 --- a/src/sheet/item_sort_category.rs +++ b/src/sheet/item_sort_category.rs @@ -1,7 +1,7 @@ use crate::error::PopulateError; -use std::result::Result; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for ItemSortCategory { fn name() -> String { "ItemSortCategory".to_string() diff --git a/src/sheet/item_special_bonus.rs b/src/sheet/item_special_bonus.rs index dce650fa..8f3ba396 100644 --- a/src/sheet/item_special_bonus.rs +++ b/src/sheet/item_special_bonus.rs @@ -1,8 +1,8 @@ -use std::result::Result; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use ironworks::sestring::SeString; use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for ItemSpecialBonus { fn name() -> String { "ItemSpecialBonus".to_string() @@ -15,11 +15,13 @@ impl MetadataAdapter for ItemSpecialBonus { #[derive(Debug)] pub struct ItemSpecialBonus { pub r#name: SeString, + pub r#unknown1: SeString, } impl ItemSpecialBonus { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#name: row.field(0usize + offset)?.into_string()?, + r#unknown1: row.field(1usize + offset)?.into_string()?, }) } } diff --git a/src/sheet/item_stain_condition.rs b/src/sheet/item_stain_condition.rs index 78c593c9..d100947b 100644 --- a/src/sheet/item_stain_condition.rs +++ b/src/sheet/item_stain_condition.rs @@ -1,7 +1,7 @@ -use std::result::Result; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for ItemStainCondition { fn name() -> String { "ItemStainCondition".to_string() @@ -12,9 +12,13 @@ impl MetadataAdapter for ItemStainCondition { } } #[derive(Debug)] -pub struct ItemStainCondition {} +pub struct ItemStainCondition { + pub r#unknown0: u32, +} impl ItemStainCondition { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u32()?, + }) } } diff --git a/src/sheet/item_ui_category.rs b/src/sheet/item_ui_category.rs index 0cf86e36..b1e333e8 100644 --- a/src/sheet/item_ui_category.rs +++ b/src/sheet/item_ui_category.rs @@ -1,8 +1,8 @@ -use std::result::Result; -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; -use ironworks::sestring::SeString; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for ItemUICategory { fn name() -> String { "ItemUICategory".to_string() diff --git a/src/sheet/jingle.rs b/src/sheet/jingle.rs index 3235ac07..8f3b4b09 100644 --- a/src/sheet/jingle.rs +++ b/src/sheet/jingle.rs @@ -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 std::result::Result; impl MetadataAdapter for Jingle { fn name() -> String { "Jingle".to_string() diff --git a/src/sheet/job_hud_manual.rs b/src/sheet/job_hud_manual.rs index 26c93509..380f83dd 100644 --- a/src/sheet/job_hud_manual.rs +++ b/src/sheet/job_hud_manual.rs @@ -1,7 +1,7 @@ use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for JobHudManual { fn name() -> String { "JobHudManual".to_string() @@ -15,9 +15,10 @@ impl MetadataAdapter for JobHudManual { pub struct JobHudManual { pub r#unknown0: u8, pub r#unknown1: u8, + pub r#unknown2: u8, pub r#action: u32, - pub r#unknown3: u8, - pub r#unknown4: u32, + pub r#unknown4: u8, + pub r#unknown5: u32, pub r#guide: u16, } impl JobHudManual { @@ -25,10 +26,11 @@ impl JobHudManual { Result::Ok(Self { r#unknown0: row.field(0usize + offset)?.into_u8()?, r#unknown1: row.field(1usize + offset)?.into_u8()?, - r#action: row.field(2usize + offset)?.into_u32()?, - r#unknown3: row.field(3usize + offset)?.into_u8()?, - r#unknown4: row.field(4usize + offset)?.into_u32()?, - r#guide: row.field(5usize + offset)?.into_u16()?, + r#unknown2: row.field(2usize + offset)?.into_u8()?, + r#action: row.field(3usize + offset)?.into_u32()?, + r#unknown4: row.field(4usize + offset)?.into_u8()?, + r#unknown5: row.field(5usize + offset)?.into_u32()?, + r#guide: row.field(6usize + offset)?.into_u16()?, }) } } diff --git a/src/sheet/job_hud_manual_priority.rs b/src/sheet/job_hud_manual_priority.rs index dc8a2c44..0fc7ead4 100644 --- a/src/sheet/job_hud_manual_priority.rs +++ b/src/sheet/job_hud_manual_priority.rs @@ -1,9 +1,9 @@ -use std::result::Result; -use crate::utility::read_array; -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; -use std::vec::Vec; +use crate::metadata::MetadataAdapter; +use crate::utility::read_array; use ironworks::excel::Row; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for JobHudManualPriority { fn name() -> String { "JobHudManualPriority".to_string() @@ -22,7 +22,7 @@ impl JobHudManualPriority { Result::Ok(Self { r#job_hud_manual: read_array( offset, - 3usize, + 8usize, 1usize, |offset| { Result::Ok(row.field(0usize + offset)?.into_u8()?) }, )?, diff --git a/src/sheet/journal_category.rs b/src/sheet/journal_category.rs index b90aa112..e8b691dd 100644 --- a/src/sheet/journal_category.rs +++ b/src/sheet/journal_category.rs @@ -1,8 +1,8 @@ use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; -use std::result::Result; use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for JournalCategory { fn name() -> String { "JournalCategory".to_string() @@ -18,6 +18,7 @@ pub struct JournalCategory { pub r#separate_type: u8, pub r#data_type: u8, pub r#journal_section: u8, + pub r#unknown4: u8, } impl JournalCategory { pub fn populate(row: &Row, offset: usize) -> Result { @@ -26,6 +27,7 @@ impl JournalCategory { r#separate_type: row.field(1usize + offset)?.into_u8()?, r#data_type: row.field(2usize + offset)?.into_u8()?, r#journal_section: row.field(3usize + offset)?.into_u8()?, + r#unknown4: row.field(4usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/journal_genre.rs b/src/sheet/journal_genre.rs index 18857d00..c4915f98 100644 --- a/src/sheet/journal_genre.rs +++ b/src/sheet/journal_genre.rs @@ -1,7 +1,7 @@ -use ironworks::sestring::SeString; -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use ironworks::sestring::SeString; use std::result::Result; impl MetadataAdapter for JournalGenre { fn name() -> String { diff --git a/src/sheet/journal_section.rs b/src/sheet/journal_section.rs index 747b1c35..3bc3ffe4 100644 --- a/src/sheet/journal_section.rs +++ b/src/sheet/journal_section.rs @@ -1,8 +1,8 @@ -use std::result::Result; -use crate::metadata::MetadataAdapter; -use ironworks::sestring::SeString; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for JournalSection { fn name() -> String { "JournalSection".to_string() @@ -15,11 +15,15 @@ impl MetadataAdapter for JournalSection { #[derive(Debug)] pub struct JournalSection { pub r#name: SeString, + pub r#unknown1: bool, + pub r#unknown2: bool, } impl JournalSection { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#name: row.field(0usize + offset)?.into_string()?, + r#unknown1: row.field(1usize + offset)?.into_bool()?, + r#unknown2: row.field(2usize + offset)?.into_bool()?, }) } } diff --git a/src/sheet/kine_driver_off_group.rs b/src/sheet/kine_driver_off_group.rs new file mode 100644 index 00000000..6f7cbf0b --- /dev/null +++ b/src/sheet/kine_driver_off_group.rs @@ -0,0 +1,32 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; +impl MetadataAdapter for KineDriverOffGroup { + fn name() -> String { + "KineDriverOffGroup".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(KineDriverOffGroup::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct KineDriverOffGroup { + pub r#unknown0: i8, + pub r#unknown1: i8, + pub r#unknown2: i8, + pub r#unknown3: i8, + pub r#unknown4: i8, +} +impl KineDriverOffGroup { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_i8()?, + r#unknown1: row.field(1usize + offset)?.into_i8()?, + r#unknown2: row.field(2usize + offset)?.into_i8()?, + r#unknown3: row.field(3usize + offset)?.into_i8()?, + r#unknown4: row.field(4usize + offset)?.into_i8()?, + }) + } +} diff --git a/src/sheet/knockback.rs b/src/sheet/knockback.rs index 873cc874..3019f944 100644 --- a/src/sheet/knockback.rs +++ b/src/sheet/knockback.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; use crate::error::PopulateError; -use std::result::Result; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for Knockback { fn name() -> String { "Knockback".to_string() diff --git a/src/sheet/legacy_quest.rs b/src/sheet/legacy_quest.rs index a90b0827..6402f197 100644 --- a/src/sheet/legacy_quest.rs +++ b/src/sheet/legacy_quest.rs @@ -1,8 +1,8 @@ -use ironworks::excel::Row; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; +use ironworks::excel::Row; use ironworks::sestring::SeString; -use crate::error::PopulateError; +use std::result::Result; impl MetadataAdapter for LegacyQuest { fn name() -> String { "LegacyQuest".to_string() @@ -18,7 +18,7 @@ pub struct LegacyQuest { pub r#text: SeString, pub r#string: SeString, pub r#sort_key: u16, - pub r#genre: u8, + pub r#genre: u32, } impl LegacyQuest { pub fn populate(row: &Row, offset: usize) -> Result { @@ -27,7 +27,7 @@ impl LegacyQuest { r#text: row.field(1usize + offset)?.into_string()?, r#string: row.field(2usize + offset)?.into_string()?, r#sort_key: row.field(3usize + offset)?.into_u16()?, - r#genre: row.field(4usize + offset)?.into_u8()?, + r#genre: row.field(4usize + offset)?.into_u32()?, }) } } diff --git a/src/sheet/leve.rs b/src/sheet/leve.rs index 1759dcb1..0657563d 100644 --- a/src/sheet/leve.rs +++ b/src/sheet/leve.rs @@ -1,8 +1,8 @@ use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; -use std::result::Result; use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for Leve { fn name() -> String { "Leve".to_string() @@ -17,21 +17,18 @@ pub struct Leve { pub r#name: SeString, pub r#description: SeString, pub r#leve_client: i32, - pub r#leve_assignment_type: u8, - pub r#unknown4: i32, + pub r#unknown3: u8, + pub r#leve_assignment_type: i32, pub r#town: i32, pub r#class_job_level: u16, pub r#time_limit: u8, pub r#allowance_cost: u8, - pub r#evaluation: i32, pub r#place_name_start: i32, pub r#place_name_issued: i32, - pub r#unknown12: u16, - pub r#unknown13: u8, - pub r#unknown14: bool, + pub r#fishing_spot: u16, + pub r#unknown12: u8, pub r#class_job_category: u8, - pub r#journal_genre: i32, - pub r#unknown17: i32, + pub r#journal_genre: u32, pub r#place_name_start_zone: i32, pub r#icon_city_state: i32, pub r#data_id: i32, @@ -55,37 +52,34 @@ impl Leve { r#name: row.field(0usize + offset)?.into_string()?, r#description: row.field(1usize + offset)?.into_string()?, r#leve_client: row.field(2usize + offset)?.into_i32()?, - r#leve_assignment_type: row.field(3usize + offset)?.into_u8()?, - r#unknown4: row.field(4usize + offset)?.into_i32()?, + r#unknown3: row.field(3usize + offset)?.into_u8()?, + r#leve_assignment_type: row.field(4usize + offset)?.into_i32()?, r#town: row.field(5usize + offset)?.into_i32()?, r#class_job_level: row.field(6usize + offset)?.into_u16()?, r#time_limit: row.field(7usize + offset)?.into_u8()?, r#allowance_cost: row.field(8usize + offset)?.into_u8()?, - r#evaluation: row.field(9usize + offset)?.into_i32()?, - r#place_name_start: row.field(10usize + offset)?.into_i32()?, - r#place_name_issued: row.field(11usize + offset)?.into_i32()?, - r#unknown12: row.field(12usize + offset)?.into_u16()?, - r#unknown13: row.field(13usize + offset)?.into_u8()?, - r#unknown14: row.field(14usize + offset)?.into_bool()?, - r#class_job_category: row.field(15usize + offset)?.into_u8()?, - r#journal_genre: row.field(16usize + offset)?.into_i32()?, - r#unknown17: row.field(17usize + offset)?.into_i32()?, - r#place_name_start_zone: row.field(18usize + offset)?.into_i32()?, - r#icon_city_state: row.field(19usize + offset)?.into_i32()?, - r#data_id: row.field(20usize + offset)?.into_i32()?, - r#can_cancel: row.field(21usize + offset)?.into_bool()?, - r#max_difficulty: row.field(22usize + offset)?.into_u8()?, - r#exp_factor: row.field(23usize + offset)?.into_f32()?, - r#exp_reward: row.field(24usize + offset)?.into_u32()?, - r#gil_reward: row.field(25usize + offset)?.into_u32()?, - r#leve_reward_item: row.field(26usize + offset)?.into_u16()?, - r#leve_vfx: row.field(27usize + offset)?.into_u8()?, - r#leve_vfx_frame: row.field(28usize + offset)?.into_u8()?, - r#level_levemete: row.field(29usize + offset)?.into_u32()?, - r#icon_issuer: row.field(30usize + offset)?.into_i32()?, - r#locked_leve: row.field(31usize + offset)?.into_bool()?, - r#level_start: row.field(32usize + offset)?.into_u32()?, - r#bgm: row.field(33usize + offset)?.into_u16()?, + r#place_name_start: row.field(9usize + offset)?.into_i32()?, + r#place_name_issued: row.field(10usize + offset)?.into_i32()?, + r#fishing_spot: row.field(11usize + offset)?.into_u16()?, + r#unknown12: row.field(12usize + offset)?.into_u8()?, + r#class_job_category: row.field(13usize + offset)?.into_u8()?, + r#journal_genre: row.field(14usize + offset)?.into_u32()?, + r#place_name_start_zone: row.field(15usize + offset)?.into_i32()?, + r#icon_city_state: row.field(16usize + offset)?.into_i32()?, + r#data_id: row.field(17usize + offset)?.into_i32()?, + r#can_cancel: row.field(18usize + offset)?.into_bool()?, + r#max_difficulty: row.field(19usize + offset)?.into_u8()?, + r#exp_factor: row.field(20usize + offset)?.into_f32()?, + r#exp_reward: row.field(21usize + offset)?.into_u32()?, + r#gil_reward: row.field(22usize + offset)?.into_u32()?, + r#leve_reward_item: row.field(23usize + offset)?.into_u16()?, + r#leve_vfx: row.field(24usize + offset)?.into_u8()?, + r#leve_vfx_frame: row.field(25usize + offset)?.into_u8()?, + r#level_levemete: row.field(26usize + offset)?.into_u32()?, + r#icon_issuer: row.field(27usize + offset)?.into_i32()?, + r#locked_leve: row.field(28usize + offset)?.into_bool()?, + r#level_start: row.field(29usize + offset)?.into_u32()?, + r#bgm: row.field(30usize + offset)?.into_u16()?, }) } } diff --git a/src/sheet/leve_assignment_type.rs b/src/sheet/leve_assignment_type.rs index 23f59bba..5f942574 100644 --- a/src/sheet/leve_assignment_type.rs +++ b/src/sheet/leve_assignment_type.rs @@ -1,8 +1,8 @@ -use ironworks::sestring::SeString; +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use ironworks::sestring::SeString; use std::result::Result; -use crate::metadata::MetadataAdapter; -use crate::error::PopulateError; impl MetadataAdapter for LeveAssignmentType { fn name() -> String { "LeveAssignmentType".to_string() @@ -14,16 +14,14 @@ impl MetadataAdapter for LeveAssignmentType { } #[derive(Debug)] pub struct LeveAssignmentType { - pub r#is_faction: bool, pub r#icon: i32, pub r#name: SeString, } impl LeveAssignmentType { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { - r#is_faction: row.field(0usize + offset)?.into_bool()?, - r#icon: row.field(1usize + offset)?.into_i32()?, - r#name: row.field(2usize + offset)?.into_string()?, + r#icon: row.field(0usize + offset)?.into_i32()?, + r#name: row.field(1usize + offset)?.into_string()?, }) } } diff --git a/src/sheet/leve_client.rs b/src/sheet/leve_client.rs index b97d4848..af5067fb 100644 --- a/src/sheet/leve_client.rs +++ b/src/sheet/leve_client.rs @@ -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 ironworks::excel::Row; impl MetadataAdapter for LeveClient { fn name() -> String { "LeveClient".to_string() diff --git a/src/sheet/leve_reward_item.rs b/src/sheet/leve_reward_item.rs index cb3b4f78..11b5a88b 100644 --- a/src/sheet/leve_reward_item.rs +++ b/src/sheet/leve_reward_item.rs @@ -1,9 +1,9 @@ -use std::vec::Vec; -use std::result::Result; -use ironworks::excel::Row; -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use crate::utility::read_array; +use ironworks::excel::Row; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for LeveRewardItem { fn name() -> String { "LeveRewardItem".to_string() diff --git a/src/sheet/leve_reward_item_group.rs b/src/sheet/leve_reward_item_group.rs index eb29d63b..fc504754 100644 --- a/src/sheet/leve_reward_item_group.rs +++ b/src/sheet/leve_reward_item_group.rs @@ -1,7 +1,7 @@ -use crate::utility::read_array; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use crate::utility::read_array; use ironworks::excel::Row; -use crate::error::PopulateError; use std::result::Result; use std::vec::Vec; impl MetadataAdapter for LeveRewardItemGroup { diff --git a/src/sheet/leve_string.rs b/src/sheet/leve_string.rs index 38cb6ec4..f84e764c 100644 --- a/src/sheet/leve_string.rs +++ b/src/sheet/leve_string.rs @@ -1,8 +1,8 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; -use crate::error::PopulateError; -use std::result::Result; use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for LeveString { fn name() -> String { "LeveString".to_string() diff --git a/src/sheet/leve_vfx.rs b/src/sheet/leve_vfx.rs index 8b344175..eccda20f 100644 --- a/src/sheet/leve_vfx.rs +++ b/src/sheet/leve_vfx.rs @@ -1,6 +1,6 @@ use crate::error::PopulateError; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use ironworks::sestring::SeString; use std::result::Result; impl MetadataAdapter for LeveVfx { diff --git a/src/sheet/level.rs b/src/sheet/level.rs index 7354a84d..a32b7d1b 100644 --- a/src/sheet/level.rs +++ b/src/sheet/level.rs @@ -1,7 +1,7 @@ -use std::result::Result; -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for Level { fn name() -> String { "Level".to_string() diff --git a/src/sheet/lobby.rs b/src/sheet/lobby.rs index a54ff622..9fbaa383 100644 --- a/src/sheet/lobby.rs +++ b/src/sheet/lobby.rs @@ -1,8 +1,8 @@ -use ironworks::sestring::SeString; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use ironworks::sestring::SeString; use std::result::Result; -use crate::metadata::MetadataAdapter; impl MetadataAdapter for Lobby { fn name() -> String { "Lobby".to_string() @@ -18,6 +18,8 @@ pub struct Lobby { pub r#param: u32, pub r#link: u32, pub r#text: SeString, + pub r#unknown4: SeString, + pub r#unknown5: SeString, } impl Lobby { pub fn populate(row: &Row, offset: usize) -> Result { @@ -26,6 +28,8 @@ impl Lobby { r#param: row.field(1usize + offset)?.into_u32()?, r#link: row.field(2usize + offset)?.into_u32()?, r#text: row.field(3usize + offset)?.into_string()?, + r#unknown4: row.field(4usize + offset)?.into_string()?, + r#unknown5: row.field(5usize + offset)?.into_string()?, }) } } diff --git a/src/sheet/log_filter.rs b/src/sheet/log_filter.rs index 579a5f66..367cb480 100644 --- a/src/sheet/log_filter.rs +++ b/src/sheet/log_filter.rs @@ -1,8 +1,8 @@ -use ironworks::excel::Row; -use crate::metadata::MetadataAdapter; 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 LogFilter { fn name() -> String { "LogFilter".to_string() diff --git a/src/sheet/log_kind.rs b/src/sheet/log_kind.rs index c7f421d6..4edeaf0f 100644 --- a/src/sheet/log_kind.rs +++ b/src/sheet/log_kind.rs @@ -1,8 +1,8 @@ use crate::error::PopulateError; -use ironworks::sestring::SeString; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use ironworks::sestring::SeString; use std::result::Result; -use crate::metadata::MetadataAdapter; impl MetadataAdapter for LogKind { fn name() -> String { "LogKind".to_string() @@ -15,13 +15,17 @@ impl MetadataAdapter for LogKind { #[derive(Debug)] pub struct LogKind { pub r#unknown0: u8, - pub r#format: SeString, + pub r#format: bool, + pub r#unknown2: SeString, + pub r#unknown3: u8, } impl LogKind { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#unknown0: row.field(0usize + offset)?.into_u8()?, - r#format: row.field(1usize + offset)?.into_string()?, + r#format: row.field(1usize + offset)?.into_bool()?, + r#unknown2: row.field(2usize + offset)?.into_string()?, + r#unknown3: row.field(3usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/log_message.rs b/src/sheet/log_message.rs index a20ecc65..3d5fcdb6 100644 --- a/src/sheet/log_message.rs +++ b/src/sheet/log_message.rs @@ -1,8 +1,8 @@ -use ironworks::sestring::SeString; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for LogMessage { fn name() -> String { "LogMessage".to_string() @@ -17,7 +17,8 @@ pub struct LogMessage { pub r#log_kind: u16, pub r#unknown1: u16, pub r#unknown2: u8, - pub r#unknown3: bool, + pub r#unknown3: u8, + pub r#unknown4: bool, pub r#text: SeString, } impl LogMessage { @@ -26,8 +27,9 @@ impl LogMessage { r#log_kind: row.field(0usize + offset)?.into_u16()?, r#unknown1: row.field(1usize + offset)?.into_u16()?, r#unknown2: row.field(2usize + offset)?.into_u8()?, - r#unknown3: row.field(3usize + offset)?.into_bool()?, - r#text: row.field(4usize + offset)?.into_string()?, + r#unknown3: row.field(3usize + offset)?.into_u8()?, + r#unknown4: row.field(4usize + offset)?.into_bool()?, + r#text: row.field(5usize + offset)?.into_string()?, }) } } diff --git a/src/sheet/lottery_exchange_shop.rs b/src/sheet/lottery_exchange_shop.rs index b304042e..49431eff 100644 --- a/src/sheet/lottery_exchange_shop.rs +++ b/src/sheet/lottery_exchange_shop.rs @@ -1,10 +1,10 @@ use crate::error::PopulateError; -use std::vec::Vec; +use crate::metadata::MetadataAdapter; use crate::utility::read_array; use ironworks::excel::Row; -use std::result::Result; use ironworks::sestring::SeString; -use crate::metadata::MetadataAdapter; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for LotteryExchangeShop { fn name() -> String { "LotteryExchangeShop".to_string() @@ -85,6 +85,7 @@ pub struct LotteryExchangeShop { pub r#unknown128: u8, pub r#lua: SeString, pub r#log_message: Vec, + pub r#unknown133: bool, } impl LotteryExchangeShop { pub fn populate(row: &Row, offset: usize) -> Result { @@ -173,6 +174,7 @@ impl LotteryExchangeShop { 1usize, |offset| { Result::Ok(row.field(130usize + offset)?.into_u32()?) }, )?, + r#unknown133: row.field(133usize + offset)?.into_bool()?, }) } } diff --git a/src/sheet/macro_icon.rs b/src/sheet/macro_icon.rs index d9a38266..adc8b891 100644 --- a/src/sheet/macro_icon.rs +++ b/src/sheet/macro_icon.rs @@ -1,7 +1,7 @@ -use crate::metadata::MetadataAdapter; -use std::result::Result; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for MacroIcon { fn name() -> String { "MacroIcon".to_string() @@ -14,11 +14,13 @@ impl MetadataAdapter for MacroIcon { #[derive(Debug)] pub struct MacroIcon { pub r#icon: i32, + pub r#unknown1: u16, } impl MacroIcon { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#icon: row.field(0usize + offset)?.into_i32()?, + r#unknown1: row.field(1usize + offset)?.into_u16()?, }) } } diff --git a/src/sheet/macro_icon_redirect_old.rs b/src/sheet/macro_icon_redirect_old.rs index 3a7a2262..9634c9ea 100644 --- a/src/sheet/macro_icon_redirect_old.rs +++ b/src/sheet/macro_icon_redirect_old.rs @@ -1,5 +1,5 @@ -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; use std::result::Result; impl MetadataAdapter for MacroIconRedirectOld { diff --git a/src/sheet/main_command.rs b/src/sheet/main_command.rs index b19e7247..bda98edc 100644 --- a/src/sheet/main_command.rs +++ b/src/sheet/main_command.rs @@ -1,8 +1,8 @@ -use ironworks::sestring::SeString; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for MainCommand { fn name() -> String { "MainCommand".to_string() diff --git a/src/sheet/main_command_category.rs b/src/sheet/main_command_category.rs index 3900069d..87be5a7b 100644 --- a/src/sheet/main_command_category.rs +++ b/src/sheet/main_command_category.rs @@ -1,8 +1,8 @@ use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; -use ironworks::sestring::SeString; use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for MainCommandCategory { fn name() -> String { "MainCommandCategory".to_string() diff --git a/src/sheet/manderville_weapon_enhance.rs b/src/sheet/manderville_weapon_enhance.rs new file mode 100644 index 00000000..ad245a6a --- /dev/null +++ b/src/sheet/manderville_weapon_enhance.rs @@ -0,0 +1,54 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; +impl MetadataAdapter for MandervilleWeaponEnhance { + fn name() -> String { + "MandervilleWeaponEnhance".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(MandervilleWeaponEnhance::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct MandervilleWeaponEnhance { + pub r#unknown0: u8, + pub r#unknown1: u32, + pub r#unknown2: u8, + pub r#unknown3: u8, + pub r#unknown4: u32, + pub r#unknown5: u8, + pub r#unknown6: u8, + pub r#unknown7: u32, + pub r#unknown8: u8, + pub r#unknown9: u8, + pub r#unknown10: u32, + pub r#unknown11: u8, + pub r#unknown12: u8, + pub r#unknown13: u32, + pub r#unknown14: u16, + pub r#unknown15: u32, +} +impl MandervilleWeaponEnhance { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u8()?, + r#unknown1: row.field(1usize + offset)?.into_u32()?, + r#unknown2: row.field(2usize + offset)?.into_u8()?, + r#unknown3: row.field(3usize + offset)?.into_u8()?, + r#unknown4: row.field(4usize + offset)?.into_u32()?, + r#unknown5: row.field(5usize + offset)?.into_u8()?, + r#unknown6: row.field(6usize + offset)?.into_u8()?, + r#unknown7: row.field(7usize + offset)?.into_u32()?, + r#unknown8: row.field(8usize + offset)?.into_u8()?, + r#unknown9: row.field(9usize + offset)?.into_u8()?, + r#unknown10: row.field(10usize + offset)?.into_u32()?, + r#unknown11: row.field(11usize + offset)?.into_u8()?, + r#unknown12: row.field(12usize + offset)?.into_u8()?, + r#unknown13: row.field(13usize + offset)?.into_u32()?, + r#unknown14: row.field(14usize + offset)?.into_u16()?, + r#unknown15: row.field(15usize + offset)?.into_u32()?, + }) + } +} diff --git a/src/sheet/maneuvers_armor.rs b/src/sheet/maneuvers_armor.rs index dd1f1ff3..ea4ccc18 100644 --- a/src/sheet/maneuvers_armor.rs +++ b/src/sheet/maneuvers_armor.rs @@ -1,9 +1,10 @@ -use crate::metadata::MetadataAdapter; -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 std::vec::Vec; impl MetadataAdapter for ManeuversArmor { fn name() -> String { "ManeuversArmor".to_string() @@ -20,6 +21,8 @@ pub struct ManeuversArmor { pub r#unknown3: u8, pub r#unknown4: bool, pub r#icon: Vec, + pub r#unknown10: SeString, + pub r#unknown11: SeString, } impl ManeuversArmor { pub fn populate(row: &Row, offset: usize) -> Result { @@ -39,6 +42,8 @@ impl ManeuversArmor { 1usize, |offset| { Result::Ok(row.field(5usize + offset)?.into_u32()?) }, )?, + r#unknown10: row.field(10usize + offset)?.into_string()?, + r#unknown11: row.field(11usize + offset)?.into_string()?, }) } } diff --git a/src/sheet/map.rs b/src/sheet/map.rs index 1296be57..0168e5f1 100644 --- a/src/sheet/map.rs +++ b/src/sheet/map.rs @@ -1,8 +1,8 @@ -use ironworks::sestring::SeString; +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use ironworks::sestring::SeString; use std::result::Result; -use crate::metadata::MetadataAdapter; -use crate::error::PopulateError; impl MetadataAdapter for Map { fn name() -> String { "Map".to_string() @@ -27,11 +27,14 @@ pub struct Map { pub r#place_name_region: u16, pub r#place_name: u16, pub r#place_name_sub: u16, - pub r#discovery_index: i16, - pub r#discovery_flag: u32, - pub r#territory_type: u16, - pub r#discovery_array_byte: bool, + pub r#discovery_index: u8, + pub r#discovery_flag: i16, + pub r#territory_type: u32, + pub r#discovery_array_byte: u16, pub r#is_event: bool, + pub r#unknown18: bool, + pub r#unknown19: bool, + pub r#unknown20: u8, } impl Map { pub fn populate(row: &Row, offset: usize) -> Result { @@ -49,11 +52,14 @@ impl Map { r#place_name_region: row.field(10usize + offset)?.into_u16()?, r#place_name: row.field(11usize + offset)?.into_u16()?, r#place_name_sub: row.field(12usize + offset)?.into_u16()?, - r#discovery_index: row.field(13usize + offset)?.into_i16()?, - r#discovery_flag: row.field(14usize + offset)?.into_u32()?, - r#territory_type: row.field(15usize + offset)?.into_u16()?, - r#discovery_array_byte: row.field(16usize + offset)?.into_bool()?, + r#discovery_index: row.field(13usize + offset)?.into_u8()?, + r#discovery_flag: row.field(14usize + offset)?.into_i16()?, + r#territory_type: row.field(15usize + offset)?.into_u32()?, + r#discovery_array_byte: row.field(16usize + offset)?.into_u16()?, r#is_event: row.field(17usize + offset)?.into_bool()?, + r#unknown18: row.field(18usize + offset)?.into_bool()?, + r#unknown19: row.field(19usize + offset)?.into_bool()?, + r#unknown20: row.field(20usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/map_condition.rs b/src/sheet/map_condition.rs index dbefc769..e4c6101d 100644 --- a/src/sheet/map_condition.rs +++ b/src/sheet/map_condition.rs @@ -15,12 +15,14 @@ impl MetadataAdapter for MapCondition { pub struct MapCondition { pub r#unknown0: u16, pub r#quest: i32, + pub r#unknown2: u8, } impl MapCondition { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#unknown0: row.field(0usize + offset)?.into_u16()?, r#quest: row.field(1usize + offset)?.into_i32()?, + r#unknown2: row.field(2usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/map_exclusive.rs b/src/sheet/map_exclusive.rs index dd7866b9..f1d35413 100644 --- a/src/sheet/map_exclusive.rs +++ b/src/sheet/map_exclusive.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use std::result::Result; -use crate::error::PopulateError; impl MetadataAdapter for MapExclusive { fn name() -> String { "MapExclusive".to_string() @@ -12,9 +12,15 @@ impl MetadataAdapter for MapExclusive { } } #[derive(Debug)] -pub struct MapExclusive {} +pub struct MapExclusive { + pub r#unknown0: u8, + pub r#unknown1: u16, +} impl MapExclusive { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u8()?, + r#unknown1: row.field(1usize + offset)?.into_u16()?, + }) } } diff --git a/src/sheet/map_marker.rs b/src/sheet/map_marker.rs index e3af349c..e0cdaa08 100644 --- a/src/sheet/map_marker.rs +++ b/src/sheet/map_marker.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; -use std::result::Result; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for MapMarker { fn name() -> String { "MapMarker".to_string() @@ -22,6 +22,8 @@ pub struct MapMarker { pub r#type: u8, pub r#data_type: u8, pub r#data_key: u16, + pub r#unknown9: u8, + pub r#unknown10: u16, } impl MapMarker { pub fn populate(row: &Row, offset: usize) -> Result { @@ -35,6 +37,8 @@ impl MapMarker { r#type: row.field(6usize + offset)?.into_u8()?, r#data_type: row.field(7usize + offset)?.into_u8()?, r#data_key: row.field(8usize + offset)?.into_u16()?, + r#unknown9: row.field(9usize + offset)?.into_u8()?, + r#unknown10: row.field(10usize + offset)?.into_u16()?, }) } } diff --git a/src/sheet/map_marker_region.rs b/src/sheet/map_marker_region.rs index 2e10cbd8..34049cc3 100644 --- a/src/sheet/map_marker_region.rs +++ b/src/sheet/map_marker_region.rs @@ -1,7 +1,7 @@ -use std::result::Result; -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for MapMarkerRegion { fn name() -> String { "MapMarkerRegion".to_string() @@ -15,12 +15,32 @@ impl MetadataAdapter for MapMarkerRegion { pub struct MapMarkerRegion { pub r#unknown0: u8, pub r#x: i16, + pub r#unknown2: i16, + pub r#unknown3: u16, + pub r#unknown4: u16, + pub r#unknown5: i16, + pub r#unknown6: i16, + pub r#unknown7: u16, + pub r#unknown8: u16, + pub r#unknown9: i16, + pub r#unknown10: i16, + pub r#unknown11: bool, } impl MapMarkerRegion { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#unknown0: row.field(0usize + offset)?.into_u8()?, r#x: row.field(1usize + offset)?.into_i16()?, + r#unknown2: row.field(2usize + offset)?.into_i16()?, + r#unknown3: row.field(3usize + offset)?.into_u16()?, + r#unknown4: row.field(4usize + offset)?.into_u16()?, + r#unknown5: row.field(5usize + offset)?.into_i16()?, + r#unknown6: row.field(6usize + offset)?.into_i16()?, + r#unknown7: row.field(7usize + offset)?.into_u16()?, + r#unknown8: row.field(8usize + offset)?.into_u16()?, + r#unknown9: row.field(9usize + offset)?.into_i16()?, + r#unknown10: row.field(10usize + offset)?.into_i16()?, + r#unknown11: row.field(11usize + offset)?.into_bool()?, }) } } diff --git a/src/sheet/map_replace.rs b/src/sheet/map_replace.rs new file mode 100644 index 00000000..5586530a --- /dev/null +++ b/src/sheet/map_replace.rs @@ -0,0 +1,40 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; +impl MetadataAdapter for MapReplace { + fn name() -> String { + "MapReplace".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(MapReplace::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct MapReplace { + pub r#unknown0: u8, + pub r#unknown1: u8, + pub r#unknown2: u8, + pub r#unknown3: u8, + pub r#unknown4: u32, + pub r#unknown5: u8, + pub r#unknown6: u16, + pub r#unknown7: u16, + pub r#unknown8: u16, +} +impl MapReplace { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u8()?, + r#unknown1: row.field(1usize + offset)?.into_u8()?, + r#unknown2: row.field(2usize + offset)?.into_u8()?, + r#unknown3: row.field(3usize + offset)?.into_u8()?, + r#unknown4: row.field(4usize + offset)?.into_u32()?, + r#unknown5: row.field(5usize + offset)?.into_u8()?, + r#unknown6: row.field(6usize + offset)?.into_u16()?, + r#unknown7: row.field(7usize + offset)?.into_u16()?, + r#unknown8: row.field(8usize + offset)?.into_u16()?, + }) + } +} diff --git a/src/sheet/map_symbol.rs b/src/sheet/map_symbol.rs index 522c4c0d..c0e53e5c 100644 --- a/src/sheet/map_symbol.rs +++ b/src/sheet/map_symbol.rs @@ -1,6 +1,6 @@ -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use std::result::Result; impl MetadataAdapter for MapSymbol { fn name() -> String { diff --git a/src/sheet/map_transient_pv_p_map.rs b/src/sheet/map_transient_pv_p_map.rs index fc65bb88..75169e8a 100644 --- a/src/sheet/map_transient_pv_p_map.rs +++ b/src/sheet/map_transient_pv_p_map.rs @@ -1,7 +1,7 @@ -use std::result::Result; -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for MapTransientPvPMap { fn name() -> String { "MapTransientPvPMap".to_string() @@ -12,9 +12,15 @@ impl MetadataAdapter for MapTransientPvPMap { } } #[derive(Debug)] -pub struct MapTransientPvPMap {} +pub struct MapTransientPvPMap { + pub r#unknown0: u32, + pub r#unknown1: u16, +} impl MapTransientPvPMap { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u32()?, + r#unknown1: row.field(1usize + offset)?.into_u16()?, + }) } } diff --git a/src/sheet/map_type.rs b/src/sheet/map_type.rs index 40db28fc..b7218556 100644 --- a/src/sheet/map_type.rs +++ b/src/sheet/map_type.rs @@ -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 MapType { fn name() -> String { "MapType".to_string() @@ -12,9 +12,13 @@ impl MetadataAdapter for MapType { } } #[derive(Debug)] -pub struct MapType {} +pub struct MapType { + pub r#unknown0: u16, +} impl MapType { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u16()?, + }) } } diff --git a/src/sheet/marker.rs b/src/sheet/marker.rs index de236c30..6cc5e41f 100644 --- a/src/sheet/marker.rs +++ b/src/sheet/marker.rs @@ -1,8 +1,8 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; use ironworks::sestring::SeString; -use crate::error::PopulateError; use std::result::Result; -use crate::metadata::MetadataAdapter; impl MetadataAdapter for Marker { fn name() -> String { "Marker".to_string() @@ -15,13 +15,15 @@ impl MetadataAdapter for Marker { #[derive(Debug)] pub struct Marker { pub r#icon: i32, + pub r#unknown1: u8, pub r#name: SeString, } impl Marker { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#icon: row.field(0usize + offset)?.into_i32()?, - r#name: row.field(1usize + offset)?.into_string()?, + r#unknown1: row.field(1usize + offset)?.into_u8()?, + r#name: row.field(2usize + offset)?.into_string()?, }) } } diff --git a/src/sheet/materia.rs b/src/sheet/materia.rs index 92a7419c..1fce3ab5 100644 --- a/src/sheet/materia.rs +++ b/src/sheet/materia.rs @@ -1,9 +1,9 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use ironworks::excel::Row; use crate::utility::read_array; -use crate::error::PopulateError; -use std::vec::Vec; +use ironworks::excel::Row; use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for Materia { fn name() -> String { "Materia".to_string() @@ -24,16 +24,16 @@ impl Materia { Result::Ok(Self { r#item: read_array( offset, - 10usize, + 16usize, 1usize, |offset| { Result::Ok(row.field(0usize + offset)?.into_i32()?) }, )?, - r#base_param: row.field(10usize + offset)?.into_u8()?, + r#base_param: row.field(16usize + offset)?.into_u8()?, r#value: read_array( offset, - 10usize, + 16usize, 1usize, - |offset| { Result::Ok(row.field(11usize + offset)?.into_i16()?) }, + |offset| { Result::Ok(row.field(17usize + offset)?.into_i16()?) }, )?, }) } diff --git a/src/sheet/materia_grade.rs b/src/sheet/materia_grade.rs index 35134c3e..96e3e68e 100644 --- a/src/sheet/materia_grade.rs +++ b/src/sheet/materia_grade.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; -use std::result::Result; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for MateriaGrade { fn name() -> String { "MateriaGrade".to_string() @@ -12,9 +12,31 @@ impl MetadataAdapter for MateriaGrade { } } #[derive(Debug)] -pub struct MateriaGrade {} +pub struct MateriaGrade { + pub r#unknown0: u8, + pub r#unknown1: u16, + pub r#unknown2: u8, + pub r#unknown3: u8, + pub r#unknown4: u8, + pub r#unknown5: u8, + pub r#unknown6: u8, + pub r#unknown7: u8, + pub r#unknown8: u8, + pub r#unknown9: u8, +} impl MateriaGrade { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u8()?, + r#unknown1: row.field(1usize + offset)?.into_u16()?, + r#unknown2: row.field(2usize + offset)?.into_u8()?, + r#unknown3: row.field(3usize + offset)?.into_u8()?, + r#unknown4: row.field(4usize + offset)?.into_u8()?, + r#unknown5: row.field(5usize + offset)?.into_u8()?, + r#unknown6: row.field(6usize + offset)?.into_u8()?, + r#unknown7: row.field(7usize + offset)?.into_u8()?, + r#unknown8: row.field(8usize + offset)?.into_u8()?, + r#unknown9: row.field(9usize + offset)?.into_u8()?, + }) } } diff --git a/src/sheet/materia_join_rate.rs b/src/sheet/materia_join_rate.rs index 626eb7a6..61db8e73 100644 --- a/src/sheet/materia_join_rate.rs +++ b/src/sheet/materia_join_rate.rs @@ -1,9 +1,9 @@ -use std::vec::Vec; -use std::result::Result; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use ironworks::excel::Row; use crate::utility::read_array; -use crate::error::PopulateError; +use ironworks::excel::Row; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for MateriaJoinRate { fn name() -> String { "MateriaJoinRate".to_string() diff --git a/src/sheet/materia_join_rate_gather_craft.rs b/src/sheet/materia_join_rate_gather_craft.rs index 988a5f24..af3abe5b 100644 --- a/src/sheet/materia_join_rate_gather_craft.rs +++ b/src/sheet/materia_join_rate_gather_craft.rs @@ -1,9 +1,9 @@ -use ironworks::excel::Row; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use crate::utility::read_array; +use ironworks::excel::Row; use std::result::Result; -use crate::error::PopulateError; use std::vec::Vec; -use crate::utility::read_array; impl MetadataAdapter for MateriaJoinRateGatherCraft { fn name() -> String { "MateriaJoinRateGatherCraft".to_string() diff --git a/src/sheet/class_job_action_sort.rs b/src/sheet/mc_guffin.rs similarity index 55% rename from src/sheet/class_job_action_sort.rs rename to src/sheet/mc_guffin.rs index a836cf5a..f3313d72 100644 --- a/src/sheet/class_job_action_sort.rs +++ b/src/sheet/mc_guffin.rs @@ -1,20 +1,24 @@ -use std::result::Result; use crate::error::PopulateError; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; -impl MetadataAdapter for ClassJobActionSort { +use ironworks::excel::Row; +use std::result::Result; +impl MetadataAdapter for McGuffin { fn name() -> String { - "ClassJobActionSort".to_string() + "McGuffin".to_string() } fn populate(row: &Row) -> Result { let offset = 0; - Result::Ok(ClassJobActionSort::populate(row, offset)?) + Result::Ok(McGuffin::populate(row, offset)?) } } #[derive(Debug)] -pub struct ClassJobActionSort {} -impl ClassJobActionSort { +pub struct McGuffin { + pub r#ui_data: u8, +} +impl McGuffin { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#ui_data: row.field(0usize + offset)?.into_u8()?, + }) } } diff --git a/src/sheet/mc_guffin_ui_data.rs b/src/sheet/mc_guffin_ui_data.rs new file mode 100644 index 00000000..b7ebb35f --- /dev/null +++ b/src/sheet/mc_guffin_ui_data.rs @@ -0,0 +1,29 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; +impl MetadataAdapter for McGuffinUIData { + fn name() -> String { + "McGuffinUIData".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(McGuffinUIData::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct McGuffinUIData { + pub r#order: u16, + pub r#icon: u32, + pub r#name: SeString, +} +impl McGuffinUIData { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#order: row.field(0usize + offset)?.into_u16()?, + r#icon: row.field(1usize + offset)?.into_u32()?, + r#name: row.field(2usize + offset)?.into_string()?, + }) + } +} diff --git a/src/sheet/mini_game_ra.rs b/src/sheet/mini_game_ra.rs index d541fed0..16d9918a 100644 --- a/src/sheet/mini_game_ra.rs +++ b/src/sheet/mini_game_ra.rs @@ -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 MiniGameRA { fn name() -> String { "MiniGameRA".to_string() @@ -17,6 +17,24 @@ pub struct MiniGameRA { pub r#icon: i32, pub r#image: i32, pub r#bgm: i32, + pub r#unknown4: i32, + pub r#unknown5: bool, + pub r#unknown6: bool, + pub r#unknown7: u32, + pub r#unknown8: bool, + pub r#unknown9: bool, + pub r#unknown10: bool, + pub r#unknown11: u16, + pub r#unknown12: u16, + pub r#unknown13: u16, + pub r#unknown14: i16, + pub r#unknown15: i16, + pub r#unknown16: i16, + pub r#unknown17: i16, + pub r#unknown18: u8, + pub r#unknown19: u8, + pub r#unknown20: u8, + pub r#unknown21: u8, } impl MiniGameRA { pub fn populate(row: &Row, offset: usize) -> Result { @@ -25,6 +43,24 @@ impl MiniGameRA { r#icon: row.field(1usize + offset)?.into_i32()?, r#image: row.field(2usize + offset)?.into_i32()?, r#bgm: row.field(3usize + offset)?.into_i32()?, + r#unknown4: row.field(4usize + offset)?.into_i32()?, + r#unknown5: row.field(5usize + offset)?.into_bool()?, + r#unknown6: row.field(6usize + offset)?.into_bool()?, + r#unknown7: row.field(7usize + offset)?.into_u32()?, + r#unknown8: row.field(8usize + offset)?.into_bool()?, + r#unknown9: row.field(9usize + offset)?.into_bool()?, + r#unknown10: row.field(10usize + offset)?.into_bool()?, + r#unknown11: row.field(11usize + offset)?.into_u16()?, + r#unknown12: row.field(12usize + offset)?.into_u16()?, + r#unknown13: row.field(13usize + offset)?.into_u16()?, + r#unknown14: row.field(14usize + offset)?.into_i16()?, + r#unknown15: row.field(15usize + offset)?.into_i16()?, + r#unknown16: row.field(16usize + offset)?.into_i16()?, + r#unknown17: row.field(17usize + offset)?.into_i16()?, + r#unknown18: row.field(18usize + offset)?.into_u8()?, + r#unknown19: row.field(19usize + offset)?.into_u8()?, + r#unknown20: row.field(20usize + offset)?.into_u8()?, + r#unknown21: row.field(21usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/mini_game_turn_break_action.rs b/src/sheet/mini_game_turn_break_action.rs new file mode 100644 index 00000000..5dad3aac --- /dev/null +++ b/src/sheet/mini_game_turn_break_action.rs @@ -0,0 +1,43 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; +impl MetadataAdapter for MiniGameTurnBreakAction { + fn name() -> String { + "MiniGameTurnBreakAction".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(MiniGameTurnBreakAction::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct MiniGameTurnBreakAction { + pub r#unknown0: i32, + pub r#unknown1: i32, + pub r#unknown2: u8, + pub r#unknown3: u8, + pub r#unknown4: u8, + pub r#unknown5: u8, + pub r#unknown6: u8, + pub r#unknown7: i32, + pub r#unknown8: SeString, + pub r#unknown9: SeString, +} +impl MiniGameTurnBreakAction { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_i32()?, + r#unknown1: row.field(1usize + offset)?.into_i32()?, + r#unknown2: row.field(2usize + offset)?.into_u8()?, + r#unknown3: row.field(3usize + offset)?.into_u8()?, + r#unknown4: row.field(4usize + offset)?.into_u8()?, + r#unknown5: row.field(5usize + offset)?.into_u8()?, + r#unknown6: row.field(6usize + offset)?.into_u8()?, + r#unknown7: row.field(7usize + offset)?.into_i32()?, + r#unknown8: row.field(8usize + offset)?.into_string()?, + r#unknown9: row.field(9usize + offset)?.into_string()?, + }) + } +} diff --git a/src/sheet/mini_game_turn_break_const.rs b/src/sheet/mini_game_turn_break_const.rs new file mode 100644 index 00000000..961dc67a --- /dev/null +++ b/src/sheet/mini_game_turn_break_const.rs @@ -0,0 +1,24 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; +impl MetadataAdapter for MiniGameTurnBreakConst { + fn name() -> String { + "MiniGameTurnBreakConst".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(MiniGameTurnBreakConst::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct MiniGameTurnBreakConst { + pub r#unknown0: i32, +} +impl MiniGameTurnBreakConst { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_i32()?, + }) + } +} diff --git a/src/sheet/mini_game_turn_break_enemy.rs b/src/sheet/mini_game_turn_break_enemy.rs new file mode 100644 index 00000000..750eadf0 --- /dev/null +++ b/src/sheet/mini_game_turn_break_enemy.rs @@ -0,0 +1,92 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; +impl MetadataAdapter for MiniGameTurnBreakEnemy { + fn name() -> String { + "MiniGameTurnBreakEnemy".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(MiniGameTurnBreakEnemy::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct MiniGameTurnBreakEnemy { + pub r#unknown0: u8, + pub r#unknown1: u8, + pub r#unknown2: u8, + pub r#unknown3: i32, + pub r#unknown4: bool, + pub r#unknown5: u8, + pub r#unknown6: u8, + pub r#unknown7: i32, + pub r#unknown8: u8, + pub r#unknown9: u8, + pub r#unknown10: u8, + pub r#unknown11: u8, + pub r#unknown12: bool, + pub r#unknown13: bool, + pub r#unknown14: bool, + pub r#unknown15: bool, + pub r#unknown16: bool, + pub r#unknown17: bool, + pub r#unknown18: bool, + pub r#unknown19: bool, + pub r#unknown20: u8, + pub r#unknown21: u8, + pub r#unknown22: u8, + pub r#unknown23: u8, + pub r#unknown24: u8, + pub r#unknown25: u8, + pub r#unknown26: u8, + pub r#unknown27: u8, + pub r#unknown28: i32, + pub r#unknown29: i32, + pub r#unknown30: i32, + pub r#unknown31: i32, + pub r#unknown32: u8, + pub r#unknown33: u8, + pub r#unknown34: u8, +} +impl MiniGameTurnBreakEnemy { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u8()?, + r#unknown1: row.field(1usize + offset)?.into_u8()?, + r#unknown2: row.field(2usize + offset)?.into_u8()?, + r#unknown3: row.field(3usize + offset)?.into_i32()?, + r#unknown4: row.field(4usize + offset)?.into_bool()?, + r#unknown5: row.field(5usize + offset)?.into_u8()?, + r#unknown6: row.field(6usize + offset)?.into_u8()?, + r#unknown7: row.field(7usize + offset)?.into_i32()?, + 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#unknown11: row.field(11usize + offset)?.into_u8()?, + r#unknown12: row.field(12usize + offset)?.into_bool()?, + r#unknown13: row.field(13usize + offset)?.into_bool()?, + r#unknown14: row.field(14usize + offset)?.into_bool()?, + r#unknown15: row.field(15usize + offset)?.into_bool()?, + r#unknown16: row.field(16usize + offset)?.into_bool()?, + r#unknown17: row.field(17usize + offset)?.into_bool()?, + r#unknown18: row.field(18usize + offset)?.into_bool()?, + r#unknown19: row.field(19usize + offset)?.into_bool()?, + r#unknown20: row.field(20usize + offset)?.into_u8()?, + r#unknown21: row.field(21usize + offset)?.into_u8()?, + r#unknown22: row.field(22usize + offset)?.into_u8()?, + r#unknown23: row.field(23usize + offset)?.into_u8()?, + r#unknown24: row.field(24usize + offset)?.into_u8()?, + r#unknown25: row.field(25usize + offset)?.into_u8()?, + r#unknown26: row.field(26usize + offset)?.into_u8()?, + r#unknown27: row.field(27usize + offset)?.into_u8()?, + r#unknown28: row.field(28usize + offset)?.into_i32()?, + r#unknown29: row.field(29usize + offset)?.into_i32()?, + r#unknown30: row.field(30usize + offset)?.into_i32()?, + r#unknown31: row.field(31usize + offset)?.into_i32()?, + r#unknown32: row.field(32usize + offset)?.into_u8()?, + r#unknown33: row.field(33usize + offset)?.into_u8()?, + r#unknown34: row.field(34usize + offset)?.into_u8()?, + }) + } +} diff --git a/src/sheet/mini_game_turn_break_pop.rs b/src/sheet/mini_game_turn_break_pop.rs new file mode 100644 index 00000000..e7dc4eb6 --- /dev/null +++ b/src/sheet/mini_game_turn_break_pop.rs @@ -0,0 +1,30 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; +impl MetadataAdapter for MiniGameTurnBreakPop { + fn name() -> String { + "MiniGameTurnBreakPop".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(MiniGameTurnBreakPop::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct MiniGameTurnBreakPop { + pub r#unknown0: u8, + pub r#unknown1: u8, + pub r#unknown2: u8, + pub r#unknown3: u16, +} +impl MiniGameTurnBreakPop { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u8()?, + r#unknown1: row.field(1usize + offset)?.into_u8()?, + r#unknown2: row.field(2usize + offset)?.into_u8()?, + r#unknown3: row.field(3usize + offset)?.into_u16()?, + }) + } +} diff --git a/src/sheet/mini_game_turn_break_pop_offset.rs b/src/sheet/mini_game_turn_break_pop_offset.rs new file mode 100644 index 00000000..77a383ce --- /dev/null +++ b/src/sheet/mini_game_turn_break_pop_offset.rs @@ -0,0 +1,38 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; +impl MetadataAdapter for MiniGameTurnBreakPopOffset { + fn name() -> String { + "MiniGameTurnBreakPopOffset".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(MiniGameTurnBreakPopOffset::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct MiniGameTurnBreakPopOffset { + pub r#unknown0: i8, + pub r#unknown1: i8, + pub r#unknown2: i8, + pub r#unknown3: i8, + pub r#unknown4: i8, + pub r#unknown5: i8, + pub r#unknown6: i8, + pub r#unknown7: i8, +} +impl MiniGameTurnBreakPopOffset { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_i8()?, + r#unknown1: row.field(1usize + offset)?.into_i8()?, + r#unknown2: row.field(2usize + offset)?.into_i8()?, + r#unknown3: row.field(3usize + offset)?.into_i8()?, + r#unknown4: row.field(4usize + offset)?.into_i8()?, + r#unknown5: row.field(5usize + offset)?.into_i8()?, + r#unknown6: row.field(6usize + offset)?.into_i8()?, + r#unknown7: row.field(7usize + offset)?.into_i8()?, + }) + } +} diff --git a/src/sheet/mini_game_turn_break_stage.rs b/src/sheet/mini_game_turn_break_stage.rs new file mode 100644 index 00000000..60f0327c --- /dev/null +++ b/src/sheet/mini_game_turn_break_stage.rs @@ -0,0 +1,42 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; +impl MetadataAdapter for MiniGameTurnBreakStage { + fn name() -> String { + "MiniGameTurnBreakStage".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(MiniGameTurnBreakStage::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct MiniGameTurnBreakStage { + pub r#unknown0: u8, + pub r#unknown1: u16, + pub r#unknown2: u8, + pub r#unknown3: u8, + pub r#unknown4: u8, + pub r#unknown5: u8, + pub r#unknown6: u8, + pub r#unknown7: u8, + pub r#unknown8: u8, + pub r#unknown9: u8, +} +impl MiniGameTurnBreakStage { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u8()?, + r#unknown1: row.field(1usize + offset)?.into_u16()?, + r#unknown2: row.field(2usize + offset)?.into_u8()?, + r#unknown3: row.field(3usize + offset)?.into_u8()?, + r#unknown4: row.field(4usize + offset)?.into_u8()?, + r#unknown5: row.field(5usize + offset)?.into_u8()?, + r#unknown6: row.field(6usize + offset)?.into_u8()?, + r#unknown7: row.field(7usize + offset)?.into_u8()?, + r#unknown8: row.field(8usize + offset)?.into_u8()?, + r#unknown9: row.field(9usize + offset)?.into_u8()?, + }) + } +} diff --git a/src/sheet/mini_game_turn_break_status.rs b/src/sheet/mini_game_turn_break_status.rs new file mode 100644 index 00000000..0fadd573 --- /dev/null +++ b/src/sheet/mini_game_turn_break_status.rs @@ -0,0 +1,35 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; +impl MetadataAdapter for MiniGameTurnBreakStatus { + fn name() -> String { + "MiniGameTurnBreakStatus".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(MiniGameTurnBreakStatus::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct MiniGameTurnBreakStatus { + pub r#unknown0: i32, + pub r#unknown1: u8, + pub r#unknown2: bool, + pub r#unknown3: u8, + pub r#unknown4: SeString, + pub r#unknown5: SeString, +} +impl MiniGameTurnBreakStatus { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_i32()?, + r#unknown1: row.field(1usize + offset)?.into_u8()?, + r#unknown2: row.field(2usize + offset)?.into_bool()?, + r#unknown3: row.field(3usize + offset)?.into_u8()?, + r#unknown4: row.field(4usize + offset)?.into_string()?, + r#unknown5: row.field(5usize + offset)?.into_string()?, + }) + } +} diff --git a/src/sheet/minion_race.rs b/src/sheet/minion_race.rs index 47ac524c..36f79944 100644 --- a/src/sheet/minion_race.rs +++ b/src/sheet/minion_race.rs @@ -1,8 +1,8 @@ -use ironworks::excel::Row; -use std::result::Result; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for MinionRace { fn name() -> String { "MinionRace".to_string() diff --git a/src/sheet/minion_rules.rs b/src/sheet/minion_rules.rs index 4ccb523f..11372caf 100644 --- a/src/sheet/minion_rules.rs +++ b/src/sheet/minion_rules.rs @@ -1,8 +1,8 @@ -use ironworks::excel::Row; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use ironworks::sestring::SeString; use std::result::Result; -use crate::metadata::MetadataAdapter; impl MetadataAdapter for MinionRules { fn name() -> String { "MinionRules".to_string() diff --git a/src/sheet/minion_skill_type.rs b/src/sheet/minion_skill_type.rs index 8496ade4..bd2298d5 100644 --- a/src/sheet/minion_skill_type.rs +++ b/src/sheet/minion_skill_type.rs @@ -1,8 +1,8 @@ -use ironworks::sestring::SeString; -use std::result::Result; use crate::error::PopulateError; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for MinionSkillType { fn name() -> String { "MinionSkillType".to_string() diff --git a/src/sheet/mirage_store_set_item.rs b/src/sheet/mirage_store_set_item.rs new file mode 100644 index 00000000..a180edf2 --- /dev/null +++ b/src/sheet/mirage_store_set_item.rs @@ -0,0 +1,35 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use crate::utility::read_array; +use ironworks::excel::Row; +use std::result::Result; +use std::vec::Vec; +impl MetadataAdapter for MirageStoreSetItem { + fn name() -> String { + "MirageStoreSetItem".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(MirageStoreSetItem::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct MirageStoreSetItem { + pub r#unknown0: u32, + pub r#unknown1: u32, + pub r#item: Vec, +} +impl MirageStoreSetItem { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u32()?, + r#unknown1: row.field(1usize + offset)?.into_u32()?, + r#item: read_array( + offset, + 9usize, + 1usize, + |offset| { Result::Ok(row.field(2usize + offset)?.into_u32()?) }, + )?, + }) + } +} diff --git a/src/sheet/mirage_store_set_item_lookup.rs b/src/sheet/mirage_store_set_item_lookup.rs new file mode 100644 index 00000000..433597c5 --- /dev/null +++ b/src/sheet/mirage_store_set_item_lookup.rs @@ -0,0 +1,37 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use crate::utility::read_array; +use ironworks::excel::Row; +use std::result::Result; +use std::vec::Vec; +impl MetadataAdapter for MirageStoreSetItemLookup { + fn name() -> String { + "MirageStoreSetItemLookup".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(MirageStoreSetItemLookup::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct MirageStoreSetItemLookup { + pub r#mirage_store_set_item: Vec, + pub r#unknown2: u32, + pub r#unknown3: u32, + pub r#unknown4: u32, +} +impl MirageStoreSetItemLookup { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#mirage_store_set_item: read_array( + offset, + 2usize, + 1usize, + |offset| { Result::Ok(row.field(0usize + offset)?.into_u32()?) }, + )?, + r#unknown2: row.field(2usize + offset)?.into_u32()?, + r#unknown3: row.field(3usize + offset)?.into_u32()?, + r#unknown4: row.field(4usize + offset)?.into_u32()?, + }) + } +} diff --git a/src/sheet/mji_animals.rs b/src/sheet/mji_animals.rs index 84dfa64f..d73947be 100644 --- a/src/sheet/mji_animals.rs +++ b/src/sheet/mji_animals.rs @@ -1,9 +1,9 @@ use crate::error::PopulateError; -use ironworks::excel::Row; -use crate::utility::read_array; -use std::vec::Vec; use crate::metadata::MetadataAdapter; +use crate::utility::read_array; +use ironworks::excel::Row; use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for MJIAnimals { fn name() -> String { "MJIAnimals".to_string() @@ -17,8 +17,8 @@ impl MetadataAdapter for MJIAnimals { pub struct MJIAnimals { pub r#b_npc_base: u32, pub r#size: u8, - pub r#unknown2: u8, - pub r#unknown3: u8, + pub r#rarity: u8, + pub r#sort: u8, pub r#reward: Vec, pub r#icon: i32, } @@ -27,8 +27,8 @@ impl MJIAnimals { Result::Ok(Self { r#b_npc_base: row.field(0usize + offset)?.into_u32()?, r#size: row.field(1usize + offset)?.into_u8()?, - r#unknown2: row.field(2usize + offset)?.into_u8()?, - r#unknown3: row.field(3usize + offset)?.into_u8()?, + r#rarity: row.field(2usize + offset)?.into_u8()?, + r#sort: row.field(3usize + offset)?.into_u8()?, r#reward: read_array( offset, 2usize, diff --git a/src/sheet/mji_building.rs b/src/sheet/mji_building.rs index b6f02706..0431c669 100644 --- a/src/sheet/mji_building.rs +++ b/src/sheet/mji_building.rs @@ -1,9 +1,9 @@ -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; -use std::result::Result; +use crate::metadata::MetadataAdapter; +use crate::utility::read_array; use ironworks::excel::Row; +use std::result::Result; use std::vec::Vec; -use crate::utility::read_array; impl MetadataAdapter for MJIBuilding { fn name() -> String { "MJIBuilding".to_string() diff --git a/src/sheet/mji_building_place.rs b/src/sheet/mji_building_place.rs index 7c8fb778..c3148fd9 100644 --- a/src/sheet/mji_building_place.rs +++ b/src/sheet/mji_building_place.rs @@ -1,6 +1,6 @@ -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use std::result::Result; impl MetadataAdapter for MJIBuildingPlace { fn name() -> String { @@ -16,6 +16,9 @@ pub struct MJIBuildingPlace { pub r#unknown0: u32, pub r#name: u32, pub r#sgb: u32, + pub r#unknown3: u8, + pub r#unknown4: i16, + pub r#unknown5: i16, } impl MJIBuildingPlace { pub fn populate(row: &Row, offset: usize) -> Result { @@ -23,6 +26,9 @@ impl MJIBuildingPlace { r#unknown0: row.field(0usize + offset)?.into_u32()?, r#name: row.field(1usize + offset)?.into_u32()?, r#sgb: row.field(2usize + offset)?.into_u32()?, + r#unknown3: row.field(3usize + offset)?.into_u8()?, + r#unknown4: row.field(4usize + offset)?.into_i16()?, + r#unknown5: row.field(5usize + offset)?.into_i16()?, }) } } diff --git a/src/sheet/mji_craftworks_object.rs b/src/sheet/mji_craftworks_object.rs index e98f0c4a..b544dbb6 100644 --- a/src/sheet/mji_craftworks_object.rs +++ b/src/sheet/mji_craftworks_object.rs @@ -1,9 +1,9 @@ -use crate::metadata::MetadataAdapter; -use std::vec::Vec; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use crate::utility::read_array; -use std::result::Result; use ironworks::excel::Row; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for MJICraftworksObject { fn name() -> String { "MJICraftworksObject".to_string() diff --git a/src/sheet/mji_craftworks_object_theme.rs b/src/sheet/mji_craftworks_object_theme.rs index ea70ed02..bf59b4cd 100644 --- a/src/sheet/mji_craftworks_object_theme.rs +++ b/src/sheet/mji_craftworks_object_theme.rs @@ -1,7 +1,7 @@ use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use ironworks::sestring::SeString; use ironworks::excel::Row; +use ironworks::sestring::SeString; use std::result::Result; impl MetadataAdapter for MJICraftworksObjectTheme { fn name() -> String { diff --git a/src/sheet/mji_craftworks_popularity.rs b/src/sheet/mji_craftworks_popularity.rs index 69c9384c..09880ef5 100644 --- a/src/sheet/mji_craftworks_popularity.rs +++ b/src/sheet/mji_craftworks_popularity.rs @@ -1,9 +1,9 @@ use crate::error::PopulateError; -use std::vec::Vec; -use crate::utility::read_array; -use std::result::Result; use crate::metadata::MetadataAdapter; +use crate::utility::read_array; use ironworks::excel::Row; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for MJICraftworksPopularity { fn name() -> String { "MJICraftworksPopularity".to_string() @@ -22,7 +22,7 @@ impl MJICraftworksPopularity { Result::Ok(Self { r#popularity: read_array( offset, - 62usize, + 91usize, 1usize, |offset| { Result::Ok(row.field(0usize + offset)?.into_u8()?) }, )?, diff --git a/src/sheet/mji_craftworks_popularity_type.rs b/src/sheet/mji_craftworks_popularity_type.rs index 161e5063..f78525f8 100644 --- a/src/sheet/mji_craftworks_popularity_type.rs +++ b/src/sheet/mji_craftworks_popularity_type.rs @@ -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 MJICraftworksPopularityType { fn name() -> String { "MJICraftworksPopularityType".to_string() diff --git a/src/sheet/mji_craftworks_rank_ratio.rs b/src/sheet/mji_craftworks_rank_ratio.rs index f3da3fb4..cf83ebec 100644 --- a/src/sheet/mji_craftworks_rank_ratio.rs +++ b/src/sheet/mji_craftworks_rank_ratio.rs @@ -1,7 +1,7 @@ -use std::result::Result; -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 MJICraftworksRankRatio { fn name() -> String { "MJICraftworksRankRatio".to_string() diff --git a/src/sheet/mji_craftworks_supply_define.rs b/src/sheet/mji_craftworks_supply_define.rs index 4a49fdda..81ae1535 100644 --- a/src/sheet/mji_craftworks_supply_define.rs +++ b/src/sheet/mji_craftworks_supply_define.rs @@ -1,7 +1,7 @@ -use std::result::Result; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for MJICraftworksSupplyDefine { fn name() -> String { "MJICraftworksSupplyDefine".to_string() diff --git a/src/sheet/mji_craftworks_tension.rs b/src/sheet/mji_craftworks_tension.rs index 5781af15..637cd070 100644 --- a/src/sheet/mji_craftworks_tension.rs +++ b/src/sheet/mji_craftworks_tension.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; use crate::error::PopulateError; -use std::result::Result; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for MJICraftworksTension { fn name() -> String { "MJICraftworksTension".to_string() @@ -12,9 +12,13 @@ impl MetadataAdapter for MJICraftworksTension { } } #[derive(Debug)] -pub struct MJICraftworksTension {} +pub struct MJICraftworksTension { + pub r#unknown0: u8, +} impl MJICraftworksTension { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u8()?, + }) } } diff --git a/src/sheet/mji_crop_seed.rs b/src/sheet/mji_crop_seed.rs index 4a3bd2ef..dccefb50 100644 --- a/src/sheet/mji_crop_seed.rs +++ b/src/sheet/mji_crop_seed.rs @@ -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 MJICropSeed { fn name() -> String { "MJICropSeed".to_string() diff --git a/src/sheet/mji_disposal_shop_item.rs b/src/sheet/mji_disposal_shop_item.rs index 5647f4d6..60d0d685 100644 --- a/src/sheet/mji_disposal_shop_item.rs +++ b/src/sheet/mji_disposal_shop_item.rs @@ -1,6 +1,6 @@ use crate::error::PopulateError; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use std::result::Result; impl MetadataAdapter for MJIDisposalShopItem { fn name() -> String { @@ -13,18 +13,20 @@ impl MetadataAdapter for MJIDisposalShopItem { } #[derive(Debug)] pub struct MJIDisposalShopItem { - pub r#unknown0: u8, - pub r#unknown1: u8, - pub r#unknown2: u16, + pub r#item: u8, + pub r#currency: u8, + pub r#count: u16, pub r#category: u8, + pub r#sort: u8, } impl MJIDisposalShopItem { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { - r#unknown0: row.field(0usize + offset)?.into_u8()?, - r#unknown1: row.field(1usize + offset)?.into_u8()?, - r#unknown2: row.field(2usize + offset)?.into_u16()?, + r#item: row.field(0usize + offset)?.into_u8()?, + r#currency: row.field(1usize + offset)?.into_u8()?, + r#count: row.field(2usize + offset)?.into_u16()?, r#category: row.field(3usize + offset)?.into_u8()?, + r#sort: row.field(4usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/mji_disposal_shop_ui_category.rs b/src/sheet/mji_disposal_shop_ui_category.rs index db0c8d28..995bdf45 100644 --- a/src/sheet/mji_disposal_shop_ui_category.rs +++ b/src/sheet/mji_disposal_shop_ui_category.rs @@ -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 std::result::Result; impl MetadataAdapter for MJIDisposalShopUICategory { fn name() -> String { "MJIDisposalShopUICategory".to_string() diff --git a/src/sheet/mji_farm_pasture_rank.rs b/src/sheet/mji_farm_pasture_rank.rs index 44f70519..1506a6e9 100644 --- a/src/sheet/mji_farm_pasture_rank.rs +++ b/src/sheet/mji_farm_pasture_rank.rs @@ -1,9 +1,9 @@ -use std::result::Result; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use crate::utility::read_array; use ironworks::excel::Row; +use std::result::Result; use std::vec::Vec; -use crate::error::PopulateError; -use crate::utility::read_array; impl MetadataAdapter for MJIFarmPastureRank { fn name() -> String { "MJIFarmPastureRank".to_string() @@ -32,6 +32,38 @@ impl MJIFarmPastureRank_SGB { #[derive(Debug)] pub struct MJIFarmPastureRank { pub r#sgb: Vec, + pub r#unknown16: u8, + pub r#unknown17: u8, + pub r#unknown18: u8, + pub r#unknown19: u8, + pub r#unknown20: u8, + pub r#unknown21: u8, + pub r#unknown22: u8, + pub r#unknown23: u8, + pub r#unknown24: u8, + pub r#unknown25: u8, + pub r#unknown26: u8, + pub r#unknown27: u8, + pub r#unknown28: u32, + pub r#unknown29: u32, + pub r#unknown30: u32, + pub r#unknown31: u32, + pub r#unknown32: u32, + pub r#unknown33: u32, + pub r#unknown34: u32, + pub r#unknown35: u32, + pub r#unknown36: u8, + pub r#unknown37: u8, + pub r#unknown38: u8, + pub r#unknown39: u8, + pub r#unknown40: u16, + pub r#unknown41: u16, + pub r#unknown42: u16, + pub r#unknown43: u16, + pub r#unknown44: u16, + pub r#unknown45: u16, + pub r#unknown46: u16, + pub r#unknown47: u16, } impl MJIFarmPastureRank { pub fn populate(row: &Row, offset: usize) -> Result { @@ -42,6 +74,38 @@ impl MJIFarmPastureRank { 4usize, |offset| { Result::Ok(MJIFarmPastureRank_SGB::populate(row, offset)?) }, )?, + r#unknown16: row.field(16usize + offset)?.into_u8()?, + r#unknown17: row.field(17usize + offset)?.into_u8()?, + r#unknown18: row.field(18usize + offset)?.into_u8()?, + r#unknown19: row.field(19usize + offset)?.into_u8()?, + r#unknown20: row.field(20usize + offset)?.into_u8()?, + r#unknown21: row.field(21usize + offset)?.into_u8()?, + r#unknown22: row.field(22usize + offset)?.into_u8()?, + r#unknown23: row.field(23usize + offset)?.into_u8()?, + r#unknown24: row.field(24usize + offset)?.into_u8()?, + r#unknown25: row.field(25usize + offset)?.into_u8()?, + r#unknown26: row.field(26usize + offset)?.into_u8()?, + r#unknown27: row.field(27usize + offset)?.into_u8()?, + r#unknown28: row.field(28usize + offset)?.into_u32()?, + r#unknown29: row.field(29usize + offset)?.into_u32()?, + r#unknown30: row.field(30usize + offset)?.into_u32()?, + r#unknown31: row.field(31usize + offset)?.into_u32()?, + r#unknown32: row.field(32usize + offset)?.into_u32()?, + r#unknown33: row.field(33usize + offset)?.into_u32()?, + r#unknown34: row.field(34usize + offset)?.into_u32()?, + r#unknown35: row.field(35usize + offset)?.into_u32()?, + r#unknown36: row.field(36usize + offset)?.into_u8()?, + r#unknown37: row.field(37usize + offset)?.into_u8()?, + r#unknown38: row.field(38usize + offset)?.into_u8()?, + r#unknown39: row.field(39usize + offset)?.into_u8()?, + r#unknown40: row.field(40usize + offset)?.into_u16()?, + r#unknown41: row.field(41usize + offset)?.into_u16()?, + r#unknown42: row.field(42usize + offset)?.into_u16()?, + r#unknown43: row.field(43usize + offset)?.into_u16()?, + r#unknown44: row.field(44usize + offset)?.into_u16()?, + r#unknown45: row.field(45usize + offset)?.into_u16()?, + r#unknown46: row.field(46usize + offset)?.into_u16()?, + r#unknown47: row.field(47usize + offset)?.into_u16()?, }) } } diff --git a/src/sheet/mji_function.rs b/src/sheet/mji_function.rs index c2642d62..e9c1780f 100644 --- a/src/sheet/mji_function.rs +++ b/src/sheet/mji_function.rs @@ -1,7 +1,7 @@ use crate::error::PopulateError; -use std::result::Result; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for MJIFunction { fn name() -> String { "MJIFunction".to_string() @@ -12,9 +12,21 @@ impl MetadataAdapter for MJIFunction { } } #[derive(Debug)] -pub struct MJIFunction {} +pub struct MJIFunction { + pub r#unknown0: i8, + pub r#unknown1: u8, + pub r#unknown2: u8, + pub r#unknown3: u8, + pub r#unknown4: u8, +} impl MJIFunction { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_i8()?, + r#unknown1: row.field(1usize + offset)?.into_u8()?, + r#unknown2: row.field(2usize + offset)?.into_u8()?, + r#unknown3: row.field(3usize + offset)?.into_u8()?, + r#unknown4: row.field(4usize + offset)?.into_u8()?, + }) } } diff --git a/src/sheet/mji_gardenscaping.rs b/src/sheet/mji_gardenscaping.rs new file mode 100644 index 00000000..f7281abc --- /dev/null +++ b/src/sheet/mji_gardenscaping.rs @@ -0,0 +1,40 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; +impl MetadataAdapter for MJIGardenscaping { + fn name() -> String { + "MJIGardenscaping".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(MJIGardenscaping::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct MJIGardenscaping { + pub r#level: u8, + pub r#unknown1: i32, + pub r#unknown2: i32, + pub r#unknown3: i32, + pub r#unknown4: u16, + pub r#item: i32, + pub r#unknown6: u16, + pub r#unknown7: i32, + pub r#unknown8: u16, +} +impl MJIGardenscaping { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#level: row.field(0usize + offset)?.into_u8()?, + r#unknown1: row.field(1usize + offset)?.into_i32()?, + r#unknown2: row.field(2usize + offset)?.into_i32()?, + r#unknown3: row.field(3usize + offset)?.into_i32()?, + r#unknown4: row.field(4usize + offset)?.into_u16()?, + r#item: row.field(5usize + offset)?.into_i32()?, + r#unknown6: row.field(6usize + offset)?.into_u16()?, + r#unknown7: row.field(7usize + offset)?.into_i32()?, + r#unknown8: row.field(8usize + offset)?.into_u16()?, + }) + } +} diff --git a/src/sheet/mji_gathering.rs b/src/sheet/mji_gathering.rs index c3c39aa2..10121a07 100644 --- a/src/sheet/mji_gathering.rs +++ b/src/sheet/mji_gathering.rs @@ -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 MJIGathering { fn name() -> String { "MJIGathering".to_string() diff --git a/src/sheet/mji_gathering_item.rs b/src/sheet/mji_gathering_item.rs index 33e93634..1f4fcc64 100644 --- a/src/sheet/mji_gathering_item.rs +++ b/src/sheet/mji_gathering_item.rs @@ -1,7 +1,7 @@ -use std::result::Result; -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for MJIGatheringItem { fn name() -> String { "MJIGatheringItem".to_string() @@ -15,20 +15,22 @@ impl MetadataAdapter for MJIGatheringItem { pub struct MJIGatheringItem { pub r#item: u32, pub r#sort: u8, - pub r#unknown2: u8, + pub r#tool: u8, pub r#x: i16, pub r#y: i16, pub r#radius: u16, + pub r#map: u8, } impl MJIGatheringItem { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#item: row.field(0usize + offset)?.into_u32()?, r#sort: row.field(1usize + offset)?.into_u8()?, - r#unknown2: row.field(2usize + offset)?.into_u8()?, + r#tool: row.field(2usize + offset)?.into_u8()?, r#x: row.field(3usize + offset)?.into_i16()?, r#y: row.field(4usize + offset)?.into_i16()?, r#radius: row.field(5usize + offset)?.into_u16()?, + r#map: row.field(6usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/mji_gathering_object.rs b/src/sheet/mji_gathering_object.rs index c6d92bf1..e374da5a 100644 --- a/src/sheet/mji_gathering_object.rs +++ b/src/sheet/mji_gathering_object.rs @@ -1,8 +1,7 @@ use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use ironworks::sestring::SeString; -use std::result::Result; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for MJIGatheringObject { fn name() -> String { "MJIGatheringObject".to_string() @@ -14,34 +13,20 @@ impl MetadataAdapter for MJIGatheringObject { } #[derive(Debug)] pub struct MJIGatheringObject { - pub r#singular: SeString, - pub r#adjective: i8, - pub r#plural: SeString, - pub r#possessive_pronoun: i8, - pub r#starts_with_vowel: i8, - pub r#unknown5: i8, - pub r#pronoun: i8, - pub r#article: i8, pub r#sgb: u16, - pub r#unknown9: bool, pub r#map_icon: u32, + pub r#unknown2: u32, pub r#name: u32, + pub r#unknown4: u16, } impl MJIGatheringObject { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { - r#singular: row.field(0usize + offset)?.into_string()?, - r#adjective: row.field(1usize + offset)?.into_i8()?, - r#plural: row.field(2usize + offset)?.into_string()?, - r#possessive_pronoun: row.field(3usize + offset)?.into_i8()?, - r#starts_with_vowel: row.field(4usize + offset)?.into_i8()?, - r#unknown5: row.field(5usize + offset)?.into_i8()?, - r#pronoun: row.field(6usize + offset)?.into_i8()?, - r#article: row.field(7usize + offset)?.into_i8()?, - r#sgb: row.field(8usize + offset)?.into_u16()?, - r#unknown9: row.field(9usize + offset)?.into_bool()?, - r#map_icon: row.field(10usize + offset)?.into_u32()?, - r#name: row.field(11usize + offset)?.into_u32()?, + r#sgb: row.field(0usize + offset)?.into_u16()?, + r#map_icon: row.field(1usize + offset)?.into_u32()?, + r#unknown2: row.field(2usize + offset)?.into_u32()?, + r#name: row.field(3usize + offset)?.into_u32()?, + r#unknown4: row.field(4usize + offset)?.into_u16()?, }) } } diff --git a/src/sheet/mji_gathering_tool.rs b/src/sheet/mji_gathering_tool.rs index 42eb971b..8d14bd49 100644 --- a/src/sheet/mji_gathering_tool.rs +++ b/src/sheet/mji_gathering_tool.rs @@ -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 MJIGatheringTool { fn name() -> String { "MJIGatheringTool".to_string() @@ -12,9 +12,13 @@ impl MetadataAdapter for MJIGatheringTool { } } #[derive(Debug)] -pub struct MJIGatheringTool {} +pub struct MJIGatheringTool { + pub r#item: u8, +} impl MJIGatheringTool { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#item: row.field(0usize + offset)?.into_u8()?, + }) } } diff --git a/src/sheet/mji_hud_mode.rs b/src/sheet/mji_hud_mode.rs index 4bf610f4..cf921625 100644 --- a/src/sheet/mji_hud_mode.rs +++ b/src/sheet/mji_hud_mode.rs @@ -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 std::result::Result; impl MetadataAdapter for MJIHudMode { fn name() -> String { "MJIHudMode".to_string() @@ -17,6 +17,7 @@ pub struct MJIHudMode { pub r#name: SeString, pub r#title: SeString, pub r#icon: u32, + pub r#unknown3: u32, } impl MJIHudMode { pub fn populate(row: &Row, offset: usize) -> Result { @@ -24,6 +25,7 @@ impl MJIHudMode { r#name: row.field(0usize + offset)?.into_string()?, r#title: row.field(1usize + offset)?.into_string()?, r#icon: row.field(2usize + offset)?.into_u32()?, + r#unknown3: row.field(3usize + offset)?.into_u32()?, }) } } diff --git a/src/sheet/mji_item_category.rs b/src/sheet/mji_item_category.rs index cd148b76..ed1232df 100644 --- a/src/sheet/mji_item_category.rs +++ b/src/sheet/mji_item_category.rs @@ -1,6 +1,6 @@ -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use ironworks::sestring::SeString; use std::result::Result; impl MetadataAdapter for MJIItemCategory { diff --git a/src/sheet/mji_item_pouch.rs b/src/sheet/mji_item_pouch.rs index fce5ae57..567de10c 100644 --- a/src/sheet/mji_item_pouch.rs +++ b/src/sheet/mji_item_pouch.rs @@ -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 MJIItemPouch { fn name() -> String { "MJIItemPouch".to_string() @@ -16,6 +16,7 @@ pub struct MJIItemPouch { pub r#item: u32, pub r#category: i32, pub r#crop: u8, + pub r#sort: u8, } impl MJIItemPouch { pub fn populate(row: &Row, offset: usize) -> Result { @@ -23,6 +24,7 @@ impl MJIItemPouch { r#item: row.field(0usize + offset)?.into_u32()?, r#category: row.field(1usize + offset)?.into_i32()?, r#crop: row.field(2usize + offset)?.into_u8()?, + r#sort: row.field(3usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/mji_key_item.rs b/src/sheet/mji_key_item.rs index 3c888a68..1b8f1e4c 100644 --- a/src/sheet/mji_key_item.rs +++ b/src/sheet/mji_key_item.rs @@ -1,7 +1,7 @@ -use std::result::Result; -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for MJIKeyItem { fn name() -> String { "MJIKeyItem".to_string() @@ -14,11 +14,13 @@ impl MetadataAdapter for MJIKeyItem { #[derive(Debug)] pub struct MJIKeyItem { pub r#item: i32, + pub r#sort: u8, } impl MJIKeyItem { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#item: row.field(0usize + offset)?.into_i32()?, + r#sort: row.field(1usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/mji_landmark.rs b/src/sheet/mji_landmark.rs index ff19c4c5..3b1745b6 100644 --- a/src/sheet/mji_landmark.rs +++ b/src/sheet/mji_landmark.rs @@ -1,9 +1,9 @@ -use std::result::Result; -use ironworks::excel::Row; -use crate::metadata::MetadataAdapter; -use std::vec::Vec; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use crate::utility::read_array; +use ironworks::excel::Row; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for MJILandmark { fn name() -> String { "MJILandmark".to_string() @@ -16,63 +16,69 @@ impl MetadataAdapter for MJILandmark { #[derive(Debug)] pub struct MJILandmark { pub r#unknown0: u8, - pub r#unknown1: u16, + pub r#unknown1: u8, + pub r#unknown2: u16, pub r#sgb0: u16, - pub r#unknown3: u8, pub r#sgb1: u16, - pub r#unknown5: u8, pub r#sgb2: u16, - pub r#unknown7: u8, + pub r#unknown6: u8, pub r#sgb3: u16, - pub r#unknown9: u8, + pub r#unknown8: u8, pub r#sgb4: u16, - pub r#unknown11: u8, + pub r#unknown10: u8, + pub r#sgb5: u16, pub r#unknown12: u8, - pub r#unknown13: u8, + pub r#sgb6: u16, pub r#unknown14: u8, pub r#unknown15: u8, pub r#unknown16: u8, + pub r#unknown17: u8, + pub r#unknown18: u8, + pub r#unknown19: u8, pub r#material: Vec, pub r#amount: Vec, pub r#name: u32, - pub r#unknown28: u16, + pub r#unknown31: u16, pub r#icon: u32, } impl MJILandmark { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#unknown0: row.field(0usize + offset)?.into_u8()?, - r#unknown1: row.field(1usize + offset)?.into_u16()?, - r#sgb0: row.field(2usize + offset)?.into_u16()?, - r#unknown3: row.field(3usize + offset)?.into_u8()?, + r#unknown1: row.field(1usize + offset)?.into_u8()?, + r#unknown2: row.field(2usize + offset)?.into_u16()?, + r#sgb0: row.field(3usize + offset)?.into_u16()?, r#sgb1: row.field(4usize + offset)?.into_u16()?, - r#unknown5: row.field(5usize + offset)?.into_u8()?, - r#sgb2: row.field(6usize + offset)?.into_u16()?, - r#unknown7: row.field(7usize + offset)?.into_u8()?, - r#sgb3: row.field(8usize + offset)?.into_u16()?, - r#unknown9: row.field(9usize + offset)?.into_u8()?, - r#sgb4: row.field(10usize + offset)?.into_u16()?, - r#unknown11: row.field(11usize + offset)?.into_u8()?, + r#sgb2: row.field(5usize + offset)?.into_u16()?, + r#unknown6: row.field(6usize + offset)?.into_u8()?, + r#sgb3: row.field(7usize + offset)?.into_u16()?, + r#unknown8: row.field(8usize + offset)?.into_u8()?, + r#sgb4: row.field(9usize + offset)?.into_u16()?, + r#unknown10: row.field(10usize + offset)?.into_u8()?, + r#sgb5: row.field(11usize + offset)?.into_u16()?, r#unknown12: row.field(12usize + offset)?.into_u8()?, - r#unknown13: row.field(13usize + offset)?.into_u8()?, + r#sgb6: row.field(13usize + offset)?.into_u16()?, r#unknown14: row.field(14usize + offset)?.into_u8()?, r#unknown15: row.field(15usize + offset)?.into_u8()?, r#unknown16: row.field(16usize + offset)?.into_u8()?, + r#unknown17: row.field(17usize + offset)?.into_u8()?, + r#unknown18: row.field(18usize + offset)?.into_u8()?, + r#unknown19: row.field(19usize + offset)?.into_u8()?, r#material: read_array( offset, 5usize, 1usize, - |offset| { Result::Ok(row.field(17usize + offset)?.into_u16()?) }, + |offset| { Result::Ok(row.field(20usize + offset)?.into_u16()?) }, )?, r#amount: read_array( offset, 5usize, 1usize, - |offset| { Result::Ok(row.field(22usize + offset)?.into_u8()?) }, + |offset| { Result::Ok(row.field(25usize + offset)?.into_u8()?) }, )?, - r#name: row.field(27usize + offset)?.into_u32()?, - r#unknown28: row.field(28usize + offset)?.into_u16()?, - r#icon: row.field(29usize + offset)?.into_u32()?, + r#name: row.field(30usize + offset)?.into_u32()?, + r#unknown31: row.field(31usize + offset)?.into_u16()?, + r#icon: row.field(32usize + offset)?.into_u32()?, }) } } diff --git a/src/sheet/mji_landmark_place.rs b/src/sheet/mji_landmark_place.rs index a3de98ea..09ef025d 100644 --- a/src/sheet/mji_landmark_place.rs +++ b/src/sheet/mji_landmark_place.rs @@ -1,7 +1,7 @@ use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for MJILandmarkPlace { fn name() -> String { "MJILandmarkPlace".to_string() @@ -15,14 +15,22 @@ impl MetadataAdapter for MJILandmarkPlace { pub struct MJILandmarkPlace { pub r#unknown0: u32, pub r#name: u32, + pub r#unknown2: u32, pub r#sgb: u32, + pub r#unknown4: u8, + pub r#unknown5: i16, + pub r#unknown6: i16, } impl MJILandmarkPlace { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#unknown0: row.field(0usize + offset)?.into_u32()?, r#name: row.field(1usize + offset)?.into_u32()?, - r#sgb: row.field(2usize + offset)?.into_u32()?, + r#unknown2: row.field(2usize + offset)?.into_u32()?, + r#sgb: row.field(3usize + offset)?.into_u32()?, + r#unknown4: row.field(4usize + offset)?.into_u8()?, + r#unknown5: row.field(5usize + offset)?.into_i16()?, + r#unknown6: row.field(6usize + offset)?.into_i16()?, }) } } diff --git a/src/sheet/mji_lively_actor.rs b/src/sheet/mji_lively_actor.rs index 8c9cd011..db78a8a8 100644 --- a/src/sheet/mji_lively_actor.rs +++ b/src/sheet/mji_lively_actor.rs @@ -1,7 +1,7 @@ use crate::error::PopulateError; -use std::result::Result; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for MJILivelyActor { fn name() -> String { "MJILivelyActor".to_string() diff --git a/src/sheet/mji_minion_pop_areas.rs b/src/sheet/mji_minion_pop_areas.rs index 17b7ce26..ce5eb838 100644 --- a/src/sheet/mji_minion_pop_areas.rs +++ b/src/sheet/mji_minion_pop_areas.rs @@ -1,7 +1,7 @@ -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; -use std::result::Result; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for MJIMinionPopAreas { fn name() -> String { "MJIMinionPopAreas".to_string() @@ -12,9 +12,21 @@ impl MetadataAdapter for MJIMinionPopAreas { } } #[derive(Debug)] -pub struct MJIMinionPopAreas {} +pub struct MJIMinionPopAreas { + pub r#unknown0: u8, + pub r#unknown1: i16, + pub r#unknown2: i16, + pub r#unknown3: i32, + pub r#unknown4: bool, +} impl MJIMinionPopAreas { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u8()?, + r#unknown1: row.field(1usize + offset)?.into_i16()?, + r#unknown2: row.field(2usize + offset)?.into_i16()?, + r#unknown3: row.field(3usize + offset)?.into_i32()?, + r#unknown4: row.field(4usize + offset)?.into_bool()?, + }) } } diff --git a/src/sheet/mji_name.rs b/src/sheet/mji_name.rs new file mode 100644 index 00000000..3c8b20a2 --- /dev/null +++ b/src/sheet/mji_name.rs @@ -0,0 +1,39 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; +impl MetadataAdapter for MJIName { + fn name() -> String { + "MJIName".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(MJIName::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct MJIName { + pub r#singular: SeString, + pub r#adjective: i8, + pub r#plural: SeString, + pub r#possessive_pronoun: i8, + pub r#starts_with_vowel: i8, + pub r#unknown5: i8, + pub r#pronoun: i8, + pub r#article: i8, +} +impl MJIName { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#singular: row.field(0usize + offset)?.into_string()?, + r#adjective: row.field(1usize + offset)?.into_i8()?, + r#plural: row.field(2usize + offset)?.into_string()?, + r#possessive_pronoun: row.field(3usize + offset)?.into_i8()?, + r#starts_with_vowel: row.field(4usize + offset)?.into_i8()?, + r#unknown5: row.field(5usize + offset)?.into_i8()?, + r#pronoun: row.field(6usize + offset)?.into_i8()?, + r#article: row.field(7usize + offset)?.into_i8()?, + }) + } +} diff --git a/src/sheet/mji_nekomimi_request.rs b/src/sheet/mji_nekomimi_request.rs new file mode 100644 index 00000000..f5d9c815 --- /dev/null +++ b/src/sheet/mji_nekomimi_request.rs @@ -0,0 +1,30 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; +impl MetadataAdapter for MJINekomimiRequest { + fn name() -> String { + "MJINekomimiRequest".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(MJINekomimiRequest::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct MJINekomimiRequest { + pub r#unknown0: u8, + pub r#unknown1: u8, + pub r#unknown2: u8, + pub r#unknown3: u8, +} +impl MJINekomimiRequest { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u8()?, + r#unknown1: row.field(1usize + offset)?.into_u8()?, + r#unknown2: row.field(2usize + offset)?.into_u8()?, + r#unknown3: row.field(3usize + offset)?.into_u8()?, + }) + } +} diff --git a/src/sheet/mji_progress.rs b/src/sheet/mji_progress.rs index 21911f9e..441c84a0 100644 --- a/src/sheet/mji_progress.rs +++ b/src/sheet/mji_progress.rs @@ -1,8 +1,8 @@ -use ironworks::sestring::SeString; -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 std::result::Result; impl MetadataAdapter for MJIProgress { fn name() -> String { "MJIProgress".to_string() @@ -17,6 +17,26 @@ pub struct MJIProgress { pub r#vision: SeString, pub r#objective: SeString, pub r#previous_objective: SeString, + pub r#unknown3: u8, + pub r#unknown4: u8, + pub r#unknown5: u8, + pub r#unknown6: u8, + pub r#unknown7: u8, + pub r#unknown8: u8, + pub r#unknown9: u8, + pub r#unknown10: u8, + pub r#unknown11: u8, + pub r#unknown12: u8, + pub r#unknown13: u8, + pub r#unknown14: u8, + pub r#unknown15: u8, + pub r#unknown16: u8, + pub r#unknown17: u8, + pub r#unknown18: u8, + pub r#unknown19: i16, + pub r#unknown20: i16, + pub r#unknown21: u16, + pub r#unknown22: u8, } impl MJIProgress { pub fn populate(row: &Row, offset: usize) -> Result { @@ -24,6 +44,26 @@ impl MJIProgress { r#vision: row.field(0usize + offset)?.into_string()?, r#objective: row.field(1usize + offset)?.into_string()?, r#previous_objective: row.field(2usize + offset)?.into_string()?, + r#unknown3: row.field(3usize + offset)?.into_u8()?, + r#unknown4: row.field(4usize + offset)?.into_u8()?, + r#unknown5: row.field(5usize + offset)?.into_u8()?, + r#unknown6: row.field(6usize + offset)?.into_u8()?, + r#unknown7: row.field(7usize + offset)?.into_u8()?, + 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#unknown11: row.field(11usize + offset)?.into_u8()?, + r#unknown12: row.field(12usize + offset)?.into_u8()?, + r#unknown13: row.field(13usize + offset)?.into_u8()?, + r#unknown14: row.field(14usize + offset)?.into_u8()?, + r#unknown15: row.field(15usize + offset)?.into_u8()?, + r#unknown16: row.field(16usize + offset)?.into_u8()?, + r#unknown17: row.field(17usize + offset)?.into_u8()?, + r#unknown18: row.field(18usize + offset)?.into_u8()?, + r#unknown19: row.field(19usize + offset)?.into_i16()?, + r#unknown20: row.field(20usize + offset)?.into_i16()?, + r#unknown21: row.field(21usize + offset)?.into_u16()?, + r#unknown22: row.field(22usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/mji_rank.rs b/src/sheet/mji_rank.rs index cb4185f7..6e7af0f2 100644 --- a/src/sheet/mji_rank.rs +++ b/src/sheet/mji_rank.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; use crate::error::PopulateError; -use crate::utility::read_array; use crate::metadata::MetadataAdapter; +use crate::utility::read_array; +use ironworks::excel::Row; use std::result::Result; use std::vec::Vec; impl MetadataAdapter for MJIRank { diff --git a/src/sheet/mji_recipe.rs b/src/sheet/mji_recipe.rs index 53f0a83c..81cbabcf 100644 --- a/src/sheet/mji_recipe.rs +++ b/src/sheet/mji_recipe.rs @@ -1,9 +1,9 @@ -use std::vec::Vec; -use crate::utility::read_array; use crate::error::PopulateError; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; +use crate::utility::read_array; +use ironworks::excel::Row; use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for MJIRecipe { fn name() -> String { "MJIRecipe".to_string() diff --git a/src/sheet/mji_recipe_material.rs b/src/sheet/mji_recipe_material.rs index bd83b67c..619af37b 100644 --- a/src/sheet/mji_recipe_material.rs +++ b/src/sheet/mji_recipe_material.rs @@ -1,7 +1,7 @@ -use std::result::Result; -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for MJIRecipeMaterial { fn name() -> String { "MJIRecipeMaterial".to_string() @@ -14,11 +14,13 @@ impl MetadataAdapter for MJIRecipeMaterial { #[derive(Debug)] pub struct MJIRecipeMaterial { pub r#item_pouch: i32, + pub r#unknown1: i32, } impl MJIRecipeMaterial { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#item_pouch: row.field(0usize + offset)?.into_i32()?, + r#unknown1: row.field(1usize + offset)?.into_i32()?, }) } } diff --git a/src/sheet/mji_stockyard_management_area.rs b/src/sheet/mji_stockyard_management_area.rs index 64c1b184..b955acf5 100644 --- a/src/sheet/mji_stockyard_management_area.rs +++ b/src/sheet/mji_stockyard_management_area.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use std::result::Result; -use crate::error::PopulateError; impl MetadataAdapter for MJIStockyardManagementArea { fn name() -> String { "MJIStockyardManagementArea".to_string() diff --git a/src/sheet/mji_stockyard_management_table.rs b/src/sheet/mji_stockyard_management_table.rs index 4eedaf12..e1d90871 100644 --- a/src/sheet/mji_stockyard_management_table.rs +++ b/src/sheet/mji_stockyard_management_table.rs @@ -1,7 +1,7 @@ use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for MJIStockyardManagementTable { fn name() -> String { "MJIStockyardManagementTable".to_string() diff --git a/src/sheet/mji_text.rs b/src/sheet/mji_text.rs index 09409e35..e213d112 100644 --- a/src/sheet/mji_text.rs +++ b/src/sheet/mji_text.rs @@ -1,7 +1,7 @@ -use ironworks::sestring::SeString; -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use ironworks::sestring::SeString; use std::result::Result; impl MetadataAdapter for MJIText { fn name() -> String { diff --git a/src/sheet/mji_village_appearance_sg.rs b/src/sheet/mji_village_appearance_sg.rs index e45b99ff..2a59dab9 100644 --- a/src/sheet/mji_village_appearance_sg.rs +++ b/src/sheet/mji_village_appearance_sg.rs @@ -1,9 +1,9 @@ -use std::result::Result; -use std::vec::Vec; +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use crate::utility::read_array; use ironworks::excel::Row; -use crate::metadata::MetadataAdapter; -use crate::error::PopulateError; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for MJIVillageAppearanceSG { fn name() -> String { "MJIVillageAppearanceSG".to_string() @@ -16,16 +16,26 @@ impl MetadataAdapter for MJIVillageAppearanceSG { #[derive(Debug)] pub struct MJIVillageAppearanceSG { pub r#sgb: Vec, + pub r#unknown5: u32, + pub r#unknown6: u32, + pub r#unknown7: u32, + pub r#unknown8: u32, + pub r#unknown9: u32, } impl MJIVillageAppearanceSG { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#sgb: read_array( offset, - 3usize, + 5usize, 1usize, |offset| { Result::Ok(row.field(0usize + offset)?.into_u16()?) }, )?, + r#unknown5: row.field(5usize + offset)?.into_u32()?, + r#unknown6: row.field(6usize + offset)?.into_u32()?, + r#unknown7: row.field(7usize + offset)?.into_u32()?, + r#unknown8: row.field(8usize + offset)?.into_u32()?, + r#unknown9: row.field(9usize + offset)?.into_u32()?, }) } } diff --git a/src/sheet/mji_village_appearance_ui.rs b/src/sheet/mji_village_appearance_ui.rs index 337e0b02..4d72fe97 100644 --- a/src/sheet/mji_village_appearance_ui.rs +++ b/src/sheet/mji_village_appearance_ui.rs @@ -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 MJIVillageAppearanceUI { fn name() -> String { "MJIVillageAppearanceUI".to_string() @@ -14,11 +14,15 @@ impl MetadataAdapter for MJIVillageAppearanceUI { #[derive(Debug)] pub struct MJIVillageAppearanceUI { pub r#floor: i32, + pub r#unknown1: u16, + pub r#unknown2: u16, } impl MJIVillageAppearanceUI { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#floor: row.field(0usize + offset)?.into_i32()?, + r#unknown1: row.field(1usize + offset)?.into_u16()?, + r#unknown2: row.field(2usize + offset)?.into_u16()?, }) } } diff --git a/src/sheet/mji_village_development.rs b/src/sheet/mji_village_development.rs index 13b1dde8..f3718fb3 100644 --- a/src/sheet/mji_village_development.rs +++ b/src/sheet/mji_village_development.rs @@ -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 MJIVillageDevelopment { fn name() -> String { "MJIVillageDevelopment".to_string() @@ -25,6 +25,9 @@ pub struct MJIVillageDevelopment { pub r#behavior0: u16, pub r#unknown10: u32, pub r#behavior1: u16, + pub r#unknown12: u32, + pub r#unknown13: u8, + pub r#unknown14: u8, } impl MJIVillageDevelopment { pub fn populate(row: &Row, offset: usize) -> Result { @@ -41,6 +44,9 @@ impl MJIVillageDevelopment { r#behavior0: row.field(9usize + offset)?.into_u16()?, r#unknown10: row.field(10usize + offset)?.into_u32()?, r#behavior1: row.field(11usize + offset)?.into_u16()?, + r#unknown12: row.field(12usize + offset)?.into_u32()?, + r#unknown13: row.field(13usize + offset)?.into_u8()?, + r#unknown14: row.field(14usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/mkd_lore.rs b/src/sheet/mkd_lore.rs new file mode 100644 index 00000000..21c27bfd --- /dev/null +++ b/src/sheet/mkd_lore.rs @@ -0,0 +1,37 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; +impl MetadataAdapter for MKDLore { + fn name() -> String { + "MKDLore".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(MKDLore::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct MKDLore { + pub r#unknown0: u32, + pub r#image: u32, + pub r#unknown2: u8, + pub r#unknown3: u8, + pub r#unknown4: u32, + pub r#name: SeString, + pub r#description: SeString, +} +impl MKDLore { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u32()?, + r#image: row.field(1usize + offset)?.into_u32()?, + r#unknown2: row.field(2usize + offset)?.into_u8()?, + r#unknown3: row.field(3usize + offset)?.into_u8()?, + r#unknown4: row.field(4usize + offset)?.into_u32()?, + r#name: row.field(5usize + offset)?.into_string()?, + r#description: row.field(6usize + offset)?.into_string()?, + }) + } +} diff --git a/src/sheet/mob_hunt_order.rs b/src/sheet/mob_hunt_order.rs index 59ef95f6..0a52c059 100644 --- a/src/sheet/mob_hunt_order.rs +++ b/src/sheet/mob_hunt_order.rs @@ -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 MobHuntOrder { fn name() -> String { "MobHuntOrder".to_string() diff --git a/src/sheet/mob_hunt_order_type.rs b/src/sheet/mob_hunt_order_type.rs index c52ef8ee..a23f49af 100644 --- a/src/sheet/mob_hunt_order_type.rs +++ b/src/sheet/mob_hunt_order_type.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; use crate::error::PopulateError; -use std::result::Result; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for MobHuntOrderType { fn name() -> String { "MobHuntOrderType".to_string() diff --git a/src/sheet/mob_hunt_reward.rs b/src/sheet/mob_hunt_reward.rs index a31ed3aa..dd12878c 100644 --- a/src/sheet/mob_hunt_reward.rs +++ b/src/sheet/mob_hunt_reward.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; -use std::result::Result; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for MobHuntReward { fn name() -> String { "MobHuntReward".to_string() diff --git a/src/sheet/mob_hunt_reward_cap.rs b/src/sheet/mob_hunt_reward_cap.rs index 33e71d4e..90fffe2b 100644 --- a/src/sheet/mob_hunt_reward_cap.rs +++ b/src/sheet/mob_hunt_reward_cap.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; use crate::error::PopulateError; -use std::result::Result; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for MobHuntRewardCap { fn name() -> String { "MobHuntRewardCap".to_string() diff --git a/src/sheet/mob_hunt_target.rs b/src/sheet/mob_hunt_target.rs index 2d00fe3d..318c8c36 100644 --- a/src/sheet/mob_hunt_target.rs +++ b/src/sheet/mob_hunt_target.rs @@ -1,7 +1,7 @@ -use std::result::Result; -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for MobHuntTarget { fn name() -> String { "MobHuntTarget".to_string() diff --git a/src/sheet/mod.rs b/src/sheet/mod.rs index eee47e01..7e1d7446 100644 --- a/src/sheet/mod.rs +++ b/src/sheet/mod.rs @@ -2,6 +2,7 @@ mod r#aoz_arrangement; mod r#aoz_boss; mod r#aoz_content; mod r#aoz_content_briefing_b_npc; +mod r#aoz_content_briefing_object; mod r#aoz_report; mod r#aoz_score; mod r#achievement; @@ -102,6 +103,13 @@ mod r#buddy_equip; mod r#buddy_item; mod r#buddy_rank; mod r#buddy_skill; +mod r#cs_bonus_content; +mod r#cs_bonus_content_identifier; +mod r#cs_bonus_content_type; +mod r#cs_bonus_mission; +mod r#cs_bonus_mission_type; +mod r#cs_bonus_season; +mod r#cs_bonus_text_data; mod r#cabinet; mod r#cabinet_category; mod r#calendar; @@ -109,6 +117,7 @@ mod r#carry; mod r#channeling; mod r#chara_card_base; mod r#chara_card_decoration; +mod r#chara_card_design_category; mod r#chara_card_design_preset; mod r#chara_card_design_type; mod r#chara_card_header; @@ -130,7 +139,6 @@ mod r#chocobo_taxi; mod r#chocobo_taxi_stand; mod r#circle_activity; mod r#class_job; -mod r#class_job_action_sort; mod r#class_job_category; mod r#collectables_shop; mod r#collectables_shop_item; @@ -165,6 +173,7 @@ mod r#content_finder_condition_transient; mod r#content_gauge; mod r#content_gauge_color; mod r#content_member_type; +mod r#content_npc; mod r#content_npc_talk; mod r#content_random_select; mod r#content_roulette; @@ -179,7 +188,6 @@ mod r#contents_tutorial_page; mod r#craft_action; mod r#craft_leve; mod r#craft_leve_talk; -mod r#craft_level_difference; mod r#craft_type; mod r#credit; mod r#credit_back_image; @@ -187,6 +195,7 @@ mod r#credit_cast; mod r#credit_list; mod r#credit_list_text; mod r#custom_talk; +mod r#custom_talk_define_client; mod r#custom_talk_nest_handlers; mod r#cut_scene_incomp_quest; mod r#cut_screen_image; @@ -204,6 +213,7 @@ mod r#dawn_quest_member; mod r#deep_dungeon; mod r#deep_dungeon_ban; mod r#deep_dungeon_danger; +mod r#deep_dungeon_demiclone; mod r#deep_dungeon_equipment; mod r#deep_dungeon_floor_effect_ui; mod r#deep_dungeon_item; @@ -244,6 +254,7 @@ mod r#equip_race_category; mod r#equip_slot_category; mod r#eureka_aether_item; mod r#eureka_aethernet; +mod r#eureka_dungeon_portal; mod r#eureka_grow_data; mod r#eureka_logos_mixer_probability; mod r#eureka_magia_action; @@ -253,6 +264,7 @@ mod r#eureka_sphere_element_adjust; mod r#event_action; mod r#event_custom_icon_type; mod r#event_icon_priority; +mod r#event_icon_priority_pair; mod r#event_icon_type; mod r#event_item; mod r#event_item_cast_timeline; @@ -263,6 +275,7 @@ mod r#event_system_define; mod r#ex_version; mod r#exported_gathering_point; mod r#exported_sg; +mod r#extra_command; mod r#fc_activity; mod r#fc_activity_category; mod r#fc_authority; @@ -274,6 +287,10 @@ mod r#fc_profile; mod r#fc_rank; mod r#fc_reputation; mod r#fc_rights; +mod r#fgs_addon; +mod r#fgs_stage_ui; +mod r#fashion_check_theme_category; +mod r#fashion_check_weekly_theme; mod r#fate; mod r#fate_event; mod r#fate_mode; @@ -284,6 +301,8 @@ mod r#fcc_shop; mod r#festival; mod r#field_marker; mod r#fish_parameter; +mod r#fishing_bait_parameter; +mod r#fishing_note_info; mod r#fishing_record_type; mod r#fishing_record_type_transient; mod r#fishing_spot; @@ -292,7 +311,6 @@ mod r#fitting_shop_category; mod r#fitting_shop_category_item; mod r#fitting_shop_item_set; mod r#frontline03; -mod r#frontline04; mod r#furniture_catalog_category; mod r#furniture_catalog_item_list; mod r#gc_rank_gridania_female_text; @@ -312,8 +330,11 @@ mod r#g_fate_climbing2; mod r#g_fate_climbing2_content; mod r#g_fate_climbing2_totem_type; mod r#g_fate_ride_shooting; +mod r#g_fate_type; mod r#game_reward_obtain_type; mod r#gardening_seed; +mod r#gatherer_crafter_tool; +mod r#gatherer_reduction_reward; mod r#gathering_condition; mod r#gathering_exp; mod r#gathering_item; @@ -345,6 +366,8 @@ mod r#gil_shop_item; mod r#gimmick_accessor; mod r#gimmick_jump; mod r#gimmick_rect; +mod r#glasses; +mod r#glasses_style; mod r#gold_saucer_arcade_machine; mod r#gold_saucer_text_data; mod r#grand_company; @@ -414,7 +437,6 @@ mod r#inclusion_shop_welcom_text; mod r#individual_weather; mod r#instance_content; mod r#instance_content_buff; -mod r#instance_content_cs_bonus; mod r#instance_content_guide; mod r#instance_content_qic_data; mod r#instance_content_text_data; @@ -439,6 +461,7 @@ mod r#job_hud_manual_priority; mod r#journal_category; mod r#journal_genre; mod r#journal_section; +mod r#kine_driver_off_group; mod r#knockback; mod r#legacy_quest; mod r#leve; @@ -469,6 +492,7 @@ mod r#mji_disposal_shop_item; mod r#mji_disposal_shop_ui_category; mod r#mji_farm_pasture_rank; mod r#mji_function; +mod r#mji_gardenscaping; mod r#mji_gathering; mod r#mji_gathering_item; mod r#mji_gathering_object; @@ -481,6 +505,8 @@ mod r#mji_landmark; mod r#mji_landmark_place; mod r#mji_lively_actor; mod r#mji_minion_pop_areas; +mod r#mji_name; +mod r#mji_nekomimi_request; mod r#mji_progress; mod r#mji_rank; mod r#mji_recipe; @@ -491,6 +517,7 @@ mod r#mji_text; mod r#mji_village_appearance_sg; mod r#mji_village_appearance_ui; mod r#mji_village_development; +mod r#mkd_lore; mod r#myc_temporary_item; mod r#myc_temporary_item_ui_category; mod r#myc_war_result_notebook; @@ -498,12 +525,14 @@ mod r#macro_icon; mod r#macro_icon_redirect_old; mod r#main_command; mod r#main_command_category; +mod r#manderville_weapon_enhance; mod r#maneuvers_armor; mod r#map; mod r#map_condition; mod r#map_exclusive; mod r#map_marker; mod r#map_marker_region; +mod r#map_replace; mod r#map_symbol; mod r#map_transient_pv_p_map; mod r#map_type; @@ -512,11 +541,21 @@ mod r#materia; mod r#materia_grade; mod r#materia_join_rate; mod r#materia_join_rate_gather_craft; -mod r#materia_tomestone_rate; +mod r#mc_guffin; +mod r#mc_guffin_ui_data; mod r#mini_game_ra; +mod r#mini_game_turn_break_action; +mod r#mini_game_turn_break_const; +mod r#mini_game_turn_break_enemy; +mod r#mini_game_turn_break_pop; +mod r#mini_game_turn_break_pop_offset; +mod r#mini_game_turn_break_stage; +mod r#mini_game_turn_break_status; mod r#minion_race; mod r#minion_rules; mod r#minion_skill_type; +mod r#mirage_store_set_item; +mod r#mirage_store_set_item_lookup; mod r#mob_hunt_order; mod r#mob_hunt_order_type; mod r#mob_hunt_reward; @@ -541,9 +580,13 @@ mod r#movie_staff_list; mod r#movie_subtitle; mod r#movie_subtitle500; mod r#movie_subtitle_voyage; +mod r#multiple_help; +mod r#multiple_help_page; +mod r#multiple_help_string; mod r#notebook_division; mod r#notebook_division_category; mod r#notorious_monster; +mod r#notorious_monster_territory; mod r#npc_equip; mod r#npc_yell; mod r#omen; @@ -580,11 +623,13 @@ mod r#player_search_sub_location; mod r#pre_handler; mod r#preset_camera; mod r#preset_camera_adjust; +mod r#previewable_items; mod r#public_content; mod r#public_content_cutscene; mod r#public_content_text_data; mod r#pv_p_action; mod r#pv_p_action_sort; +mod r#pv_p_base_param_value; mod r#pv_p_rank; mod r#pv_p_select_trait; mod r#pv_p_series; @@ -596,9 +641,14 @@ mod r#quest_battle; mod r#quest_chapter; mod r#quest_class_job_reward; mod r#quest_class_job_supply; +mod r#quest_define_client; mod r#quest_derived_class; mod r#quest_effect; mod r#quest_effect_define; +mod r#quest_event_area_entrance_info; +mod r#quest_link_marker; +mod r#quest_link_marker_icon; +mod r#quest_link_marker_set; mod r#quest_redo; mod r#quest_redo_chapter_ui; mod r#quest_redo_chapter_ui_category; @@ -606,6 +656,7 @@ mod r#quest_redo_chapter_ui_tab; mod r#quest_redo_incomp_chapter; mod r#quest_repeat_flag; mod r#quest_reward_other; +mod r#quest_select_title; mod r#quest_set_define; mod r#quick_chat; mod r#quick_chat_transient; @@ -630,6 +681,7 @@ mod r#relic3; mod r#relic_item; mod r#relic_note; mod r#relic_note_category; +mod r#replace_action; mod r#resident; mod r#resistance_weapon_adjust; mod r#retainer_fortune_reward_range; @@ -642,6 +694,7 @@ mod r#ride_shooting; mod r#ride_shooting_target_type; mod r#ride_shooting_text_data; mod r#satisfaction_arbitration; +mod r#satisfaction_bonus_guarantee; mod r#satisfaction_npc; mod r#satisfaction_supply; mod r#satisfaction_supply_reward; @@ -653,6 +706,7 @@ mod r#screen_image; mod r#secret_recipe_book; mod r#sharlayan_craft_works; mod r#sharlayan_craft_works_supply; +mod r#shell_fixed_from_command; mod r#sky_island2_mission; mod r#sky_island2_mission_detail; mod r#sky_island2_mission_type; @@ -686,7 +740,14 @@ mod r#territory_type_telepo; mod r#territory_type_transient; mod r#text_command; mod r#text_command_param; +mod r#tilt_param; mod r#title; +mod r#tofu_edit_param; +mod r#tofu_object; +mod r#tofu_object_category; +mod r#tofu_preset; +mod r#tofu_preset_category; +mod r#tofu_preset_object; mod r#tomestones; mod r#tomestones_item; mod r#topic_select; @@ -717,6 +778,7 @@ mod r#uds_event; mod r#uds_property; mod r#ui_color; mod r#ui_const; +mod r#ui_level_lookup; mod r#vfx; mod r#vvd_data; mod r#vvd_notebook_contents; @@ -749,6 +811,7 @@ pub use r#aoz_arrangement::*; pub use r#aoz_boss::*; pub use r#aoz_content::*; pub use r#aoz_content_briefing_b_npc::*; +pub use r#aoz_content_briefing_object::*; pub use r#aoz_report::*; pub use r#aoz_score::*; pub use r#achievement::*; @@ -849,6 +912,13 @@ pub use r#buddy_equip::*; pub use r#buddy_item::*; pub use r#buddy_rank::*; pub use r#buddy_skill::*; +pub use r#cs_bonus_content::*; +pub use r#cs_bonus_content_identifier::*; +pub use r#cs_bonus_content_type::*; +pub use r#cs_bonus_mission::*; +pub use r#cs_bonus_mission_type::*; +pub use r#cs_bonus_season::*; +pub use r#cs_bonus_text_data::*; pub use r#cabinet::*; pub use r#cabinet_category::*; pub use r#calendar::*; @@ -856,6 +926,7 @@ pub use r#carry::*; pub use r#channeling::*; pub use r#chara_card_base::*; pub use r#chara_card_decoration::*; +pub use r#chara_card_design_category::*; pub use r#chara_card_design_preset::*; pub use r#chara_card_design_type::*; pub use r#chara_card_header::*; @@ -877,7 +948,6 @@ pub use r#chocobo_taxi::*; pub use r#chocobo_taxi_stand::*; pub use r#circle_activity::*; pub use r#class_job::*; -pub use r#class_job_action_sort::*; pub use r#class_job_category::*; pub use r#collectables_shop::*; pub use r#collectables_shop_item::*; @@ -912,6 +982,7 @@ pub use r#content_finder_condition_transient::*; pub use r#content_gauge::*; pub use r#content_gauge_color::*; pub use r#content_member_type::*; +pub use r#content_npc::*; pub use r#content_npc_talk::*; pub use r#content_random_select::*; pub use r#content_roulette::*; @@ -926,7 +997,6 @@ pub use r#contents_tutorial_page::*; pub use r#craft_action::*; pub use r#craft_leve::*; pub use r#craft_leve_talk::*; -pub use r#craft_level_difference::*; pub use r#craft_type::*; pub use r#credit::*; pub use r#credit_back_image::*; @@ -934,6 +1004,7 @@ pub use r#credit_cast::*; pub use r#credit_list::*; pub use r#credit_list_text::*; pub use r#custom_talk::*; +pub use r#custom_talk_define_client::*; pub use r#custom_talk_nest_handlers::*; pub use r#cut_scene_incomp_quest::*; pub use r#cut_screen_image::*; @@ -951,6 +1022,7 @@ pub use r#dawn_quest_member::*; pub use r#deep_dungeon::*; pub use r#deep_dungeon_ban::*; pub use r#deep_dungeon_danger::*; +pub use r#deep_dungeon_demiclone::*; pub use r#deep_dungeon_equipment::*; pub use r#deep_dungeon_floor_effect_ui::*; pub use r#deep_dungeon_item::*; @@ -991,6 +1063,7 @@ pub use r#equip_race_category::*; pub use r#equip_slot_category::*; pub use r#eureka_aether_item::*; pub use r#eureka_aethernet::*; +pub use r#eureka_dungeon_portal::*; pub use r#eureka_grow_data::*; pub use r#eureka_logos_mixer_probability::*; pub use r#eureka_magia_action::*; @@ -1000,6 +1073,7 @@ pub use r#eureka_sphere_element_adjust::*; pub use r#event_action::*; pub use r#event_custom_icon_type::*; pub use r#event_icon_priority::*; +pub use r#event_icon_priority_pair::*; pub use r#event_icon_type::*; pub use r#event_item::*; pub use r#event_item_cast_timeline::*; @@ -1010,6 +1084,7 @@ pub use r#event_system_define::*; pub use r#ex_version::*; pub use r#exported_gathering_point::*; pub use r#exported_sg::*; +pub use r#extra_command::*; pub use r#fc_activity::*; pub use r#fc_activity_category::*; pub use r#fc_authority::*; @@ -1021,6 +1096,10 @@ pub use r#fc_profile::*; pub use r#fc_rank::*; pub use r#fc_reputation::*; pub use r#fc_rights::*; +pub use r#fgs_addon::*; +pub use r#fgs_stage_ui::*; +pub use r#fashion_check_theme_category::*; +pub use r#fashion_check_weekly_theme::*; pub use r#fate::*; pub use r#fate_event::*; pub use r#fate_mode::*; @@ -1031,6 +1110,8 @@ pub use r#fcc_shop::*; pub use r#festival::*; pub use r#field_marker::*; pub use r#fish_parameter::*; +pub use r#fishing_bait_parameter::*; +pub use r#fishing_note_info::*; pub use r#fishing_record_type::*; pub use r#fishing_record_type_transient::*; pub use r#fishing_spot::*; @@ -1039,7 +1120,6 @@ pub use r#fitting_shop_category::*; pub use r#fitting_shop_category_item::*; pub use r#fitting_shop_item_set::*; pub use r#frontline03::*; -pub use r#frontline04::*; pub use r#furniture_catalog_category::*; pub use r#furniture_catalog_item_list::*; pub use r#gc_rank_gridania_female_text::*; @@ -1059,8 +1139,11 @@ pub use r#g_fate_climbing2::*; pub use r#g_fate_climbing2_content::*; pub use r#g_fate_climbing2_totem_type::*; pub use r#g_fate_ride_shooting::*; +pub use r#g_fate_type::*; pub use r#game_reward_obtain_type::*; pub use r#gardening_seed::*; +pub use r#gatherer_crafter_tool::*; +pub use r#gatherer_reduction_reward::*; pub use r#gathering_condition::*; pub use r#gathering_exp::*; pub use r#gathering_item::*; @@ -1092,6 +1175,8 @@ pub use r#gil_shop_item::*; pub use r#gimmick_accessor::*; pub use r#gimmick_jump::*; pub use r#gimmick_rect::*; +pub use r#glasses::*; +pub use r#glasses_style::*; pub use r#gold_saucer_arcade_machine::*; pub use r#gold_saucer_text_data::*; pub use r#grand_company::*; @@ -1161,7 +1246,6 @@ pub use r#inclusion_shop_welcom_text::*; pub use r#individual_weather::*; pub use r#instance_content::*; pub use r#instance_content_buff::*; -pub use r#instance_content_cs_bonus::*; pub use r#instance_content_guide::*; pub use r#instance_content_qic_data::*; pub use r#instance_content_text_data::*; @@ -1186,6 +1270,7 @@ pub use r#job_hud_manual_priority::*; pub use r#journal_category::*; pub use r#journal_genre::*; pub use r#journal_section::*; +pub use r#kine_driver_off_group::*; pub use r#knockback::*; pub use r#legacy_quest::*; pub use r#leve::*; @@ -1216,6 +1301,7 @@ pub use r#mji_disposal_shop_item::*; pub use r#mji_disposal_shop_ui_category::*; pub use r#mji_farm_pasture_rank::*; pub use r#mji_function::*; +pub use r#mji_gardenscaping::*; pub use r#mji_gathering::*; pub use r#mji_gathering_item::*; pub use r#mji_gathering_object::*; @@ -1228,6 +1314,8 @@ pub use r#mji_landmark::*; pub use r#mji_landmark_place::*; pub use r#mji_lively_actor::*; pub use r#mji_minion_pop_areas::*; +pub use r#mji_name::*; +pub use r#mji_nekomimi_request::*; pub use r#mji_progress::*; pub use r#mji_rank::*; pub use r#mji_recipe::*; @@ -1238,6 +1326,7 @@ pub use r#mji_text::*; pub use r#mji_village_appearance_sg::*; pub use r#mji_village_appearance_ui::*; pub use r#mji_village_development::*; +pub use r#mkd_lore::*; pub use r#myc_temporary_item::*; pub use r#myc_temporary_item_ui_category::*; pub use r#myc_war_result_notebook::*; @@ -1245,12 +1334,14 @@ pub use r#macro_icon::*; pub use r#macro_icon_redirect_old::*; pub use r#main_command::*; pub use r#main_command_category::*; +pub use r#manderville_weapon_enhance::*; pub use r#maneuvers_armor::*; pub use r#map::*; pub use r#map_condition::*; pub use r#map_exclusive::*; pub use r#map_marker::*; pub use r#map_marker_region::*; +pub use r#map_replace::*; pub use r#map_symbol::*; pub use r#map_transient_pv_p_map::*; pub use r#map_type::*; @@ -1259,11 +1350,21 @@ pub use r#materia::*; pub use r#materia_grade::*; pub use r#materia_join_rate::*; pub use r#materia_join_rate_gather_craft::*; -pub use r#materia_tomestone_rate::*; +pub use r#mc_guffin::*; +pub use r#mc_guffin_ui_data::*; pub use r#mini_game_ra::*; +pub use r#mini_game_turn_break_action::*; +pub use r#mini_game_turn_break_const::*; +pub use r#mini_game_turn_break_enemy::*; +pub use r#mini_game_turn_break_pop::*; +pub use r#mini_game_turn_break_pop_offset::*; +pub use r#mini_game_turn_break_stage::*; +pub use r#mini_game_turn_break_status::*; pub use r#minion_race::*; pub use r#minion_rules::*; pub use r#minion_skill_type::*; +pub use r#mirage_store_set_item::*; +pub use r#mirage_store_set_item_lookup::*; pub use r#mob_hunt_order::*; pub use r#mob_hunt_order_type::*; pub use r#mob_hunt_reward::*; @@ -1288,9 +1389,13 @@ pub use r#movie_staff_list::*; pub use r#movie_subtitle::*; pub use r#movie_subtitle500::*; pub use r#movie_subtitle_voyage::*; +pub use r#multiple_help::*; +pub use r#multiple_help_page::*; +pub use r#multiple_help_string::*; pub use r#notebook_division::*; pub use r#notebook_division_category::*; pub use r#notorious_monster::*; +pub use r#notorious_monster_territory::*; pub use r#npc_equip::*; pub use r#npc_yell::*; pub use r#omen::*; @@ -1327,11 +1432,13 @@ pub use r#player_search_sub_location::*; pub use r#pre_handler::*; pub use r#preset_camera::*; pub use r#preset_camera_adjust::*; +pub use r#previewable_items::*; pub use r#public_content::*; pub use r#public_content_cutscene::*; pub use r#public_content_text_data::*; pub use r#pv_p_action::*; pub use r#pv_p_action_sort::*; +pub use r#pv_p_base_param_value::*; pub use r#pv_p_rank::*; pub use r#pv_p_select_trait::*; pub use r#pv_p_series::*; @@ -1343,9 +1450,14 @@ pub use r#quest_battle::*; pub use r#quest_chapter::*; pub use r#quest_class_job_reward::*; pub use r#quest_class_job_supply::*; +pub use r#quest_define_client::*; pub use r#quest_derived_class::*; pub use r#quest_effect::*; pub use r#quest_effect_define::*; +pub use r#quest_event_area_entrance_info::*; +pub use r#quest_link_marker::*; +pub use r#quest_link_marker_icon::*; +pub use r#quest_link_marker_set::*; pub use r#quest_redo::*; pub use r#quest_redo_chapter_ui::*; pub use r#quest_redo_chapter_ui_category::*; @@ -1353,6 +1465,7 @@ pub use r#quest_redo_chapter_ui_tab::*; pub use r#quest_redo_incomp_chapter::*; pub use r#quest_repeat_flag::*; pub use r#quest_reward_other::*; +pub use r#quest_select_title::*; pub use r#quest_set_define::*; pub use r#quick_chat::*; pub use r#quick_chat_transient::*; @@ -1377,6 +1490,7 @@ pub use r#relic3::*; pub use r#relic_item::*; pub use r#relic_note::*; pub use r#relic_note_category::*; +pub use r#replace_action::*; pub use r#resident::*; pub use r#resistance_weapon_adjust::*; pub use r#retainer_fortune_reward_range::*; @@ -1389,6 +1503,7 @@ pub use r#ride_shooting::*; pub use r#ride_shooting_target_type::*; pub use r#ride_shooting_text_data::*; pub use r#satisfaction_arbitration::*; +pub use r#satisfaction_bonus_guarantee::*; pub use r#satisfaction_npc::*; pub use r#satisfaction_supply::*; pub use r#satisfaction_supply_reward::*; @@ -1400,6 +1515,7 @@ pub use r#screen_image::*; pub use r#secret_recipe_book::*; pub use r#sharlayan_craft_works::*; pub use r#sharlayan_craft_works_supply::*; +pub use r#shell_fixed_from_command::*; pub use r#sky_island2_mission::*; pub use r#sky_island2_mission_detail::*; pub use r#sky_island2_mission_type::*; @@ -1433,7 +1549,14 @@ pub use r#territory_type_telepo::*; pub use r#territory_type_transient::*; pub use r#text_command::*; pub use r#text_command_param::*; +pub use r#tilt_param::*; pub use r#title::*; +pub use r#tofu_edit_param::*; +pub use r#tofu_object::*; +pub use r#tofu_object_category::*; +pub use r#tofu_preset::*; +pub use r#tofu_preset_category::*; +pub use r#tofu_preset_object::*; pub use r#tomestones::*; pub use r#tomestones_item::*; pub use r#topic_select::*; @@ -1464,6 +1587,7 @@ pub use r#uds_event::*; pub use r#uds_property::*; pub use r#ui_color::*; pub use r#ui_const::*; +pub use r#ui_level_lookup::*; pub use r#vfx::*; pub use r#vvd_data::*; pub use r#vvd_notebook_contents::*; diff --git a/src/sheet/model_chara.rs b/src/sheet/model_chara.rs index 481dbce4..524abd3a 100644 --- a/src/sheet/model_chara.rs +++ b/src/sheet/model_chara.rs @@ -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 ModelChara { fn name() -> String { "ModelChara".to_string() @@ -21,6 +21,21 @@ pub struct ModelChara { pub r#unknown5: u8, pub r#unknown6: bool, pub r#pap_variation: bool, + pub r#unknown8: u8, + pub r#unknown9: i8, + pub r#unknown10: bool, + pub r#unknown11: bool, + pub r#unknown12: bool, + pub r#unknown13: bool, + pub r#unknown14: bool, + pub r#unknown15: u8, + pub r#unknown16: bool, + pub r#unknown17: u8, + pub r#unknown18: u8, + pub r#unknown19: f32, + pub r#unknown20: f32, + pub r#unknown21: u8, + pub r#unknown22: f32, } impl ModelChara { pub fn populate(row: &Row, offset: usize) -> Result { @@ -33,6 +48,21 @@ impl ModelChara { r#unknown5: row.field(5usize + offset)?.into_u8()?, r#unknown6: row.field(6usize + offset)?.into_bool()?, r#pap_variation: row.field(7usize + offset)?.into_bool()?, + r#unknown8: row.field(8usize + offset)?.into_u8()?, + r#unknown9: row.field(9usize + offset)?.into_i8()?, + r#unknown10: row.field(10usize + offset)?.into_bool()?, + r#unknown11: row.field(11usize + offset)?.into_bool()?, + r#unknown12: row.field(12usize + offset)?.into_bool()?, + r#unknown13: row.field(13usize + offset)?.into_bool()?, + r#unknown14: row.field(14usize + offset)?.into_bool()?, + r#unknown15: row.field(15usize + offset)?.into_u8()?, + r#unknown16: row.field(16usize + offset)?.into_bool()?, + r#unknown17: row.field(17usize + offset)?.into_u8()?, + r#unknown18: row.field(18usize + offset)?.into_u8()?, + r#unknown19: row.field(19usize + offset)?.into_f32()?, + r#unknown20: row.field(20usize + offset)?.into_f32()?, + r#unknown21: row.field(21usize + offset)?.into_u8()?, + r#unknown22: row.field(22usize + offset)?.into_f32()?, }) } } diff --git a/src/sheet/model_skeleton.rs b/src/sheet/model_skeleton.rs index c1c1da22..6aaf995f 100644 --- a/src/sheet/model_skeleton.rs +++ b/src/sheet/model_skeleton.rs @@ -1,7 +1,6 @@ use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; -use std::convert::Infallible; use std::result::Result; impl MetadataAdapter for ModelSkeleton { fn name() -> String { @@ -31,7 +30,6 @@ pub struct ModelSkeleton { pub r#unknown14: u8, pub r#motion_blend_type: bool, pub r#loop_fly_se: u8, - pub r#auto_attack_type: Option, } impl ModelSkeleton { pub fn populate(row: &Row, offset: usize) -> Result { @@ -53,7 +51,6 @@ impl ModelSkeleton { r#unknown14: row.field(14usize + offset)?.into_u8()?, r#motion_blend_type: row.field(15usize + offset)?.into_bool()?, r#loop_fly_se: row.field(16usize + offset)?.into_u8()?, - r#auto_attack_type: None, }) } } diff --git a/src/sheet/model_state.rs b/src/sheet/model_state.rs index 8764275f..638df7bb 100644 --- a/src/sheet/model_state.rs +++ b/src/sheet/model_state.rs @@ -1,7 +1,7 @@ -use std::result::Result; -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for ModelState { fn name() -> String { "ModelState".to_string() diff --git a/src/sheet/monster_note.rs b/src/sheet/monster_note.rs index 6f33868d..2f8bf851 100644 --- a/src/sheet/monster_note.rs +++ b/src/sheet/monster_note.rs @@ -1,10 +1,10 @@ use crate::error::PopulateError; -use std::vec::Vec; -use ironworks::sestring::SeString; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; -use std::result::Result; use crate::utility::read_array; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for MonsterNote { fn name() -> String { "MonsterNote".to_string() diff --git a/src/sheet/monster_note_target.rs b/src/sheet/monster_note_target.rs index 2a6ba4e1..a6702c43 100644 --- a/src/sheet/monster_note_target.rs +++ b/src/sheet/monster_note_target.rs @@ -1,8 +1,8 @@ -use crate::utility::read_array; -use std::result::Result; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use crate::utility::read_array; use ironworks::excel::Row; -use crate::error::PopulateError; +use std::result::Result; use std::vec::Vec; impl MetadataAdapter for MonsterNoteTarget { fn name() -> String { diff --git a/src/sheet/motion_timeline.rs b/src/sheet/motion_timeline.rs index 33acce0f..abb096cb 100644 --- a/src/sheet/motion_timeline.rs +++ b/src/sheet/motion_timeline.rs @@ -1,8 +1,8 @@ -use ironworks::sestring::SeString; -use std::result::Result; use crate::error::PopulateError; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for MotionTimeline { fn name() -> String { "MotionTimeline".to_string() @@ -19,6 +19,9 @@ pub struct MotionTimeline { pub r#is_loop: bool, pub r#is_blink_enable: bool, pub r#is_lip_enable: bool, + pub r#unknown5: u8, + pub r#unknown6: u8, + pub r#unknown7: bool, } impl MotionTimeline { pub fn populate(row: &Row, offset: usize) -> Result { @@ -28,6 +31,9 @@ impl MotionTimeline { r#is_loop: row.field(2usize + offset)?.into_bool()?, r#is_blink_enable: row.field(3usize + offset)?.into_bool()?, r#is_lip_enable: row.field(4usize + offset)?.into_bool()?, + r#unknown5: row.field(5usize + offset)?.into_u8()?, + r#unknown6: row.field(6usize + offset)?.into_u8()?, + r#unknown7: row.field(7usize + offset)?.into_bool()?, }) } } diff --git a/src/sheet/motion_timeline_blend_table.rs b/src/sheet/motion_timeline_blend_table.rs index 9083fa68..37a99f86 100644 --- a/src/sheet/motion_timeline_blend_table.rs +++ b/src/sheet/motion_timeline_blend_table.rs @@ -1,7 +1,7 @@ -use crate::metadata::MetadataAdapter; -use std::result::Result; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for MotionTimelineBlendTable { fn name() -> String { "MotionTimelineBlendTable".to_string() diff --git a/src/sheet/mount.rs b/src/sheet/mount.rs index fbb8a177..47ad26fa 100644 --- a/src/sheet/mount.rs +++ b/src/sheet/mount.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; use crate::error::PopulateError; -use ironworks::sestring::SeString; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; use std::result::Result; impl MetadataAdapter for Mount { fn name() -> String { @@ -23,7 +23,7 @@ pub struct Mount { pub r#pronoun: i8, pub r#article: i8, pub r#model_chara: i32, - pub r#unknown9: u16, + pub r#move_control: u16, pub r#flying_condition: u8, pub r#unknown11: u8, pub r#unknown12: u8, @@ -45,18 +45,29 @@ pub struct Mount { pub r#equip_foot: i32, pub r#order: i16, pub r#icon: u16, - pub r#ui_priority: u8, + pub r#ui_priority: u16, pub r#radius_rate: u8, - pub r#base_motion_speed_run: u8, + pub r#base_motion_speed_run: bool, pub r#base_motion_speed_walk: u8, pub r#unknown35: u8, + pub r#underwater_animation_speed: u8, pub r#extra_seats: u8, pub r#mount_action: u16, pub r#is_airborne: bool, pub r#ex_hotbar_enable_config: bool, pub r#use_ep: bool, - pub r#unknown41: bool, + pub r#unknown42: bool, pub r#is_immobile: bool, + pub r#unknown44: u8, + pub r#unknown45: u8, + pub r#unknown46: bool, + pub r#hide_headgear: bool, + pub r#tilt_ground: u16, + pub r#tilt_air_swim: u16, + pub r#tilt_param3: u16, + pub r#unknown51: bool, + pub r#tilt_param4: u16, + pub r#unknown53: bool, } impl Mount { pub fn populate(row: &Row, offset: usize) -> Result { @@ -70,7 +81,7 @@ impl Mount { r#pronoun: row.field(6usize + offset)?.into_i8()?, r#article: row.field(7usize + offset)?.into_i8()?, r#model_chara: row.field(8usize + offset)?.into_i32()?, - r#unknown9: row.field(9usize + offset)?.into_u16()?, + r#move_control: row.field(9usize + offset)?.into_u16()?, r#flying_condition: row.field(10usize + offset)?.into_u8()?, r#unknown11: row.field(11usize + offset)?.into_u8()?, r#unknown12: row.field(12usize + offset)?.into_u8()?, @@ -92,18 +103,29 @@ impl Mount { r#equip_foot: row.field(28usize + offset)?.into_i32()?, r#order: row.field(29usize + offset)?.into_i16()?, r#icon: row.field(30usize + offset)?.into_u16()?, - r#ui_priority: row.field(31usize + offset)?.into_u8()?, + r#ui_priority: row.field(31usize + offset)?.into_u16()?, r#radius_rate: row.field(32usize + offset)?.into_u8()?, - r#base_motion_speed_run: row.field(33usize + offset)?.into_u8()?, + r#base_motion_speed_run: row.field(33usize + offset)?.into_bool()?, r#base_motion_speed_walk: row.field(34usize + offset)?.into_u8()?, r#unknown35: row.field(35usize + offset)?.into_u8()?, - r#extra_seats: row.field(36usize + offset)?.into_u8()?, - r#mount_action: row.field(37usize + offset)?.into_u16()?, - r#is_airborne: row.field(38usize + offset)?.into_bool()?, - r#ex_hotbar_enable_config: row.field(39usize + offset)?.into_bool()?, - r#use_ep: row.field(40usize + offset)?.into_bool()?, - r#unknown41: row.field(41usize + offset)?.into_bool()?, - r#is_immobile: row.field(42usize + offset)?.into_bool()?, + r#underwater_animation_speed: row.field(36usize + offset)?.into_u8()?, + r#extra_seats: row.field(37usize + offset)?.into_u8()?, + r#mount_action: row.field(38usize + offset)?.into_u16()?, + r#is_airborne: row.field(39usize + offset)?.into_bool()?, + r#ex_hotbar_enable_config: row.field(40usize + offset)?.into_bool()?, + r#use_ep: row.field(41usize + offset)?.into_bool()?, + r#unknown42: row.field(42usize + offset)?.into_bool()?, + r#is_immobile: row.field(43usize + offset)?.into_bool()?, + r#unknown44: row.field(44usize + offset)?.into_u8()?, + r#unknown45: row.field(45usize + offset)?.into_u8()?, + r#unknown46: row.field(46usize + offset)?.into_bool()?, + r#hide_headgear: row.field(47usize + offset)?.into_bool()?, + r#tilt_ground: row.field(48usize + offset)?.into_u16()?, + r#tilt_air_swim: row.field(49usize + offset)?.into_u16()?, + r#tilt_param3: row.field(50usize + offset)?.into_u16()?, + r#unknown51: row.field(51usize + offset)?.into_bool()?, + r#tilt_param4: row.field(52usize + offset)?.into_u16()?, + r#unknown53: row.field(53usize + offset)?.into_bool()?, }) } } diff --git a/src/sheet/mount_action.rs b/src/sheet/mount_action.rs index f2fa0107..59cf4f46 100644 --- a/src/sheet/mount_action.rs +++ b/src/sheet/mount_action.rs @@ -1,9 +1,9 @@ -use crate::utility::read_array; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use crate::utility::read_array; +use ironworks::excel::Row; use std::result::Result; use std::vec::Vec; -use ironworks::excel::Row; -use crate::error::PopulateError; impl MetadataAdapter for MountAction { fn name() -> String { "MountAction".to_string() diff --git a/src/sheet/mount_customize.rs b/src/sheet/mount_customize.rs index b4119e0e..ad2b36b5 100644 --- a/src/sheet/mount_customize.rs +++ b/src/sheet/mount_customize.rs @@ -1,5 +1,5 @@ -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; use std::result::Result; impl MetadataAdapter for MountCustomize { @@ -29,11 +29,12 @@ pub struct MountCustomize { pub r#au_ra_male_scale: u16, pub r#au_ra_female_scale: u16, pub r#hrothgar_male_scale: u16, + pub r#hrothgar_female_scale: u16, pub r#viera_male_scale: u16, pub r#viera_female_scale: u16, pub r#hyur_midlander_male_camera_height: u16, - pub r#hyur_midlander_female_camera_height: u8, - pub r#hyur_highlander_male_camera_height: u8, + pub r#hyur_midlander_female_camera_height: u16, + pub r#hyur_highlander_male_camera_height: u16, pub r#hyur_highlander_female_camera_height: u8, pub r#elezen_male_camera_height: u8, pub r#elezen_female_camera_height: u8, @@ -48,6 +49,13 @@ pub struct MountCustomize { pub r#hrothgar_male_camera_height: u8, pub r#viera_male_camera_height: u8, pub r#viera_female_camera_height: u8, + pub r#unknown36: u8, + pub r#unknown37: u8, + pub r#unknown38: u8, + pub r#unknown39: u8, + pub r#unknown40: u8, + pub r#unknown41: u8, + pub r#unknown42: u8, } impl MountCustomize { pub fn populate(row: &Row, offset: usize) -> Result { @@ -68,33 +76,41 @@ impl MountCustomize { r#au_ra_male_scale: row.field(13usize + offset)?.into_u16()?, r#au_ra_female_scale: row.field(14usize + offset)?.into_u16()?, r#hrothgar_male_scale: row.field(15usize + offset)?.into_u16()?, - r#viera_male_scale: row.field(16usize + offset)?.into_u16()?, - r#viera_female_scale: row.field(17usize + offset)?.into_u16()?, + r#hrothgar_female_scale: row.field(16usize + offset)?.into_u16()?, + r#viera_male_scale: row.field(17usize + offset)?.into_u16()?, + r#viera_female_scale: row.field(18usize + offset)?.into_u16()?, r#hyur_midlander_male_camera_height: row - .field(18usize + offset)? + .field(19usize + offset)? .into_u16()?, r#hyur_midlander_female_camera_height: row - .field(19usize + offset)? - .into_u8()?, - r#hyur_highlander_male_camera_height: row .field(20usize + offset)? - .into_u8()?, - r#hyur_highlander_female_camera_height: row + .into_u16()?, + r#hyur_highlander_male_camera_height: row .field(21usize + offset)? + .into_u16()?, + r#hyur_highlander_female_camera_height: row + .field(22usize + offset)? .into_u8()?, - r#elezen_male_camera_height: row.field(22usize + offset)?.into_u8()?, - r#elezen_female_camera_height: row.field(23usize + offset)?.into_u8()?, - r#lala_male_camera_height: row.field(24usize + offset)?.into_u8()?, - r#lala_female_camera_height: row.field(25usize + offset)?.into_u8()?, - r#miqo_male_camera_height: row.field(26usize + offset)?.into_u8()?, - r#miqo_female_camera_height: row.field(27usize + offset)?.into_u8()?, - r#roe_male_camera_height: row.field(28usize + offset)?.into_u8()?, - r#roe_female_camera_height: row.field(29usize + offset)?.into_u8()?, - r#au_ra_male_camera_height: row.field(30usize + offset)?.into_u8()?, - r#au_ra_female_camera_height: row.field(31usize + offset)?.into_u8()?, - r#hrothgar_male_camera_height: row.field(32usize + offset)?.into_u8()?, - r#viera_male_camera_height: row.field(33usize + offset)?.into_u8()?, - r#viera_female_camera_height: row.field(34usize + offset)?.into_u8()?, + r#elezen_male_camera_height: row.field(23usize + offset)?.into_u8()?, + r#elezen_female_camera_height: row.field(24usize + offset)?.into_u8()?, + r#lala_male_camera_height: row.field(25usize + offset)?.into_u8()?, + r#lala_female_camera_height: row.field(26usize + offset)?.into_u8()?, + r#miqo_male_camera_height: row.field(27usize + offset)?.into_u8()?, + r#miqo_female_camera_height: row.field(28usize + offset)?.into_u8()?, + r#roe_male_camera_height: row.field(29usize + offset)?.into_u8()?, + r#roe_female_camera_height: row.field(30usize + offset)?.into_u8()?, + r#au_ra_male_camera_height: row.field(31usize + offset)?.into_u8()?, + r#au_ra_female_camera_height: row.field(32usize + offset)?.into_u8()?, + r#hrothgar_male_camera_height: row.field(33usize + offset)?.into_u8()?, + r#viera_male_camera_height: row.field(34usize + offset)?.into_u8()?, + r#viera_female_camera_height: row.field(35usize + offset)?.into_u8()?, + r#unknown36: row.field(36usize + offset)?.into_u8()?, + r#unknown37: row.field(37usize + offset)?.into_u8()?, + r#unknown38: row.field(38usize + offset)?.into_u8()?, + r#unknown39: row.field(39usize + offset)?.into_u8()?, + r#unknown40: row.field(40usize + offset)?.into_u8()?, + r#unknown41: row.field(41usize + offset)?.into_u8()?, + r#unknown42: row.field(42usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/mount_flying_condition.rs b/src/sheet/mount_flying_condition.rs index 60f9476f..7dd67ff5 100644 --- a/src/sheet/mount_flying_condition.rs +++ b/src/sheet/mount_flying_condition.rs @@ -1,6 +1,6 @@ use crate::error::PopulateError; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use std::result::Result; impl MetadataAdapter for MountFlyingCondition { fn name() -> String { diff --git a/src/sheet/mount_speed.rs b/src/sheet/mount_speed.rs index 4ab4b44f..d534faff 100644 --- a/src/sheet/mount_speed.rs +++ b/src/sheet/mount_speed.rs @@ -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 MountSpeed { fn name() -> String { "MountSpeed".to_string() @@ -14,11 +14,15 @@ impl MetadataAdapter for MountSpeed { #[derive(Debug)] pub struct MountSpeed { pub r#quest: u32, + pub r#unknown1: u32, + pub r#unknown2: u8, } impl MountSpeed { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#quest: row.field(0usize + offset)?.into_u32()?, + r#unknown1: row.field(1usize + offset)?.into_u32()?, + r#unknown2: row.field(2usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/mount_transient.rs b/src/sheet/mount_transient.rs index 29a77a94..dde63601 100644 --- a/src/sheet/mount_transient.rs +++ b/src/sheet/mount_transient.rs @@ -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 ironworks::excel::Row; -use crate::error::PopulateError; impl MetadataAdapter for MountTransient { fn name() -> String { "MountTransient".to_string() diff --git a/src/sheet/move_timeline.rs b/src/sheet/move_timeline.rs index e4f561d1..7501530c 100644 --- a/src/sheet/move_timeline.rs +++ b/src/sheet/move_timeline.rs @@ -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 MoveTimeline { fn name() -> String { "MoveTimeline".to_string() diff --git a/src/sheet/move_vfx.rs b/src/sheet/move_vfx.rs index bed0c305..33c45b95 100644 --- a/src/sheet/move_vfx.rs +++ b/src/sheet/move_vfx.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use std::result::Result; -use crate::error::PopulateError; impl MetadataAdapter for MoveVfx { fn name() -> String { "MoveVfx".to_string() diff --git a/src/sheet/movie_staff_list.rs b/src/sheet/movie_staff_list.rs index 13669be6..e095714f 100644 --- a/src/sheet/movie_staff_list.rs +++ b/src/sheet/movie_staff_list.rs @@ -1,7 +1,7 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; use ironworks::excel::Row; -use crate::error::PopulateError; +use std::result::Result; impl MetadataAdapter for MovieStaffList { fn name() -> String { "MovieStaffList".to_string() @@ -16,6 +16,7 @@ pub struct MovieStaffList { pub r#image: u32, pub r#start_time: f32, pub r#end_time: f32, + pub r#unknown3: i8, } impl MovieStaffList { pub fn populate(row: &Row, offset: usize) -> Result { @@ -23,6 +24,7 @@ impl MovieStaffList { r#image: row.field(0usize + offset)?.into_u32()?, r#start_time: row.field(1usize + offset)?.into_f32()?, r#end_time: row.field(2usize + offset)?.into_f32()?, + r#unknown3: row.field(3usize + offset)?.into_i8()?, }) } } diff --git a/src/sheet/movie_subtitle.rs b/src/sheet/movie_subtitle.rs index a3fca8fb..b49a3348 100644 --- a/src/sheet/movie_subtitle.rs +++ b/src/sheet/movie_subtitle.rs @@ -1,7 +1,7 @@ use crate::error::PopulateError; -use std::result::Result; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for MovieSubtitle { fn name() -> String { "MovieSubtitle".to_string() diff --git a/src/sheet/movie_subtitle500.rs b/src/sheet/movie_subtitle500.rs index 13a9a8d5..b34b2659 100644 --- a/src/sheet/movie_subtitle500.rs +++ b/src/sheet/movie_subtitle500.rs @@ -1,7 +1,7 @@ -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; -use std::result::Result; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for MovieSubtitle500 { fn name() -> String { "MovieSubtitle500".to_string() diff --git a/src/sheet/movie_subtitle_voyage.rs b/src/sheet/movie_subtitle_voyage.rs index bf0cab7a..96e10864 100644 --- a/src/sheet/movie_subtitle_voyage.rs +++ b/src/sheet/movie_subtitle_voyage.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; -use std::result::Result; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for MovieSubtitleVoyage { fn name() -> String { "MovieSubtitleVoyage".to_string() diff --git a/src/sheet/multiple_help.rs b/src/sheet/multiple_help.rs new file mode 100644 index 00000000..75a3c8d9 --- /dev/null +++ b/src/sheet/multiple_help.rs @@ -0,0 +1,29 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; +impl MetadataAdapter for MultipleHelp { + fn name() -> String { + "MultipleHelp".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(MultipleHelp::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct MultipleHelp { + pub r#unknown0: u16, + pub r#unknown1: SeString, + pub r#unknown2: SeString, +} +impl MultipleHelp { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u16()?, + r#unknown1: row.field(1usize + offset)?.into_string()?, + r#unknown2: row.field(2usize + offset)?.into_string()?, + }) + } +} diff --git a/src/sheet/multiple_help_page.rs b/src/sheet/multiple_help_page.rs new file mode 100644 index 00000000..d5d79738 --- /dev/null +++ b/src/sheet/multiple_help_page.rs @@ -0,0 +1,24 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; +impl MetadataAdapter for MultipleHelpPage { + fn name() -> String { + "MultipleHelpPage".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(MultipleHelpPage::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct MultipleHelpPage { + pub r#unknown0: u16, +} +impl MultipleHelpPage { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u16()?, + }) + } +} diff --git a/src/sheet/multiple_help_string.rs b/src/sheet/multiple_help_string.rs new file mode 100644 index 00000000..48c87acb --- /dev/null +++ b/src/sheet/multiple_help_string.rs @@ -0,0 +1,27 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; +impl MetadataAdapter for MultipleHelpString { + fn name() -> String { + "MultipleHelpString".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(MultipleHelpString::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct MultipleHelpString { + pub r#unknown0: SeString, + pub r#unknown1: SeString, +} +impl MultipleHelpString { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_string()?, + r#unknown1: row.field(1usize + offset)?.into_string()?, + }) + } +} diff --git a/src/sheet/myc_temporary_item.rs b/src/sheet/myc_temporary_item.rs index 1ec0c703..868d0ffe 100644 --- a/src/sheet/myc_temporary_item.rs +++ b/src/sheet/myc_temporary_item.rs @@ -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 MYCTemporaryItem { fn name() -> String { "MYCTemporaryItem".to_string() diff --git a/src/sheet/myc_temporary_item_ui_category.rs b/src/sheet/myc_temporary_item_ui_category.rs index 8b1647dc..94f74e2b 100644 --- a/src/sheet/myc_temporary_item_ui_category.rs +++ b/src/sheet/myc_temporary_item_ui_category.rs @@ -1,8 +1,8 @@ -use std::result::Result; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use ironworks::sestring::SeString; use ironworks::excel::Row; -use crate::error::PopulateError; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for MYCTemporaryItemUICategory { fn name() -> String { "MYCTemporaryItemUICategory".to_string() @@ -15,11 +15,13 @@ impl MetadataAdapter for MYCTemporaryItemUICategory { #[derive(Debug)] pub struct MYCTemporaryItemUICategory { pub r#name: SeString, + pub r#unknown1: SeString, } impl MYCTemporaryItemUICategory { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#name: row.field(0usize + offset)?.into_string()?, + r#unknown1: row.field(1usize + offset)?.into_string()?, }) } } diff --git a/src/sheet/myc_war_result_notebook.rs b/src/sheet/myc_war_result_notebook.rs index 47b4f3fe..8d3699a5 100644 --- a/src/sheet/myc_war_result_notebook.rs +++ b/src/sheet/myc_war_result_notebook.rs @@ -1,8 +1,8 @@ -use std::result::Result; -use ironworks::excel::Row; -use ironworks::sestring::SeString; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for MYCWarResultNotebook { fn name() -> String { "MYCWarResultNotebook".to_string() diff --git a/src/sheet/notebook_division.rs b/src/sheet/notebook_division.rs index 79d40e32..7f99887c 100644 --- a/src/sheet/notebook_division.rs +++ b/src/sheet/notebook_division.rs @@ -1,8 +1,8 @@ -use ironworks::sestring::SeString; -use crate::metadata::MetadataAdapter; 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 NotebookDivision { fn name() -> String { "NotebookDivision".to_string() @@ -21,14 +21,16 @@ pub struct NotebookDivision { pub r#quest_unlock: u32, pub r#unknown5: u8, pub r#unknown6: bool, - pub r#crp_craft: bool, - pub r#bsm_craft: bool, + pub r#crp_craft: u8, + pub r#bsm_craft: u8, pub r#arm_craft: bool, pub r#gsm_craft: bool, pub r#ltw_craft: bool, pub r#wvr_craft: bool, pub r#alc_craft: bool, pub r#cul_craft: bool, + pub r#unknown15: bool, + pub r#unknown16: bool, } impl NotebookDivision { pub fn populate(row: &Row, offset: usize) -> Result { @@ -40,14 +42,16 @@ impl NotebookDivision { r#quest_unlock: row.field(4usize + offset)?.into_u32()?, r#unknown5: row.field(5usize + offset)?.into_u8()?, r#unknown6: row.field(6usize + offset)?.into_bool()?, - r#crp_craft: row.field(7usize + offset)?.into_bool()?, - r#bsm_craft: row.field(8usize + offset)?.into_bool()?, + r#crp_craft: row.field(7usize + offset)?.into_u8()?, + r#bsm_craft: row.field(8usize + offset)?.into_u8()?, r#arm_craft: row.field(9usize + offset)?.into_bool()?, r#gsm_craft: row.field(10usize + offset)?.into_bool()?, r#ltw_craft: row.field(11usize + offset)?.into_bool()?, r#wvr_craft: row.field(12usize + offset)?.into_bool()?, r#alc_craft: row.field(13usize + offset)?.into_bool()?, r#cul_craft: row.field(14usize + offset)?.into_bool()?, + r#unknown15: row.field(15usize + offset)?.into_bool()?, + r#unknown16: row.field(16usize + offset)?.into_bool()?, }) } } diff --git a/src/sheet/notebook_division_category.rs b/src/sheet/notebook_division_category.rs index 7de4c99d..980e7158 100644 --- a/src/sheet/notebook_division_category.rs +++ b/src/sheet/notebook_division_category.rs @@ -1,8 +1,8 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; use ironworks::sestring::SeString; -use crate::metadata::MetadataAdapter; use std::result::Result; -use crate::error::PopulateError; impl MetadataAdapter for NotebookDivisionCategory { fn name() -> String { "NotebookDivisionCategory".to_string() diff --git a/src/sheet/notorious_monster.rs b/src/sheet/notorious_monster.rs index 3e3a008c..9432cd33 100644 --- a/src/sheet/notorious_monster.rs +++ b/src/sheet/notorious_monster.rs @@ -1,6 +1,6 @@ -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use std::result::Result; impl MetadataAdapter for NotoriousMonster { fn name() -> String { @@ -16,6 +16,7 @@ pub struct NotoriousMonster { pub r#b_npc_base: i32, pub r#rank: u8, pub r#b_npc_name: u32, + pub r#unknown3: u16, } impl NotoriousMonster { pub fn populate(row: &Row, offset: usize) -> Result { @@ -23,6 +24,7 @@ impl NotoriousMonster { r#b_npc_base: row.field(0usize + offset)?.into_i32()?, r#rank: row.field(1usize + offset)?.into_u8()?, r#b_npc_name: row.field(2usize + offset)?.into_u32()?, + r#unknown3: row.field(3usize + offset)?.into_u16()?, }) } } diff --git a/src/sheet/notorious_monster_territory.rs b/src/sheet/notorious_monster_territory.rs new file mode 100644 index 00000000..20ed7a2e --- /dev/null +++ b/src/sheet/notorious_monster_territory.rs @@ -0,0 +1,31 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use crate::utility::read_array; +use ironworks::excel::Row; +use std::result::Result; +use std::vec::Vec; +impl MetadataAdapter for NotoriousMonsterTerritory { + fn name() -> String { + "NotoriousMonsterTerritory".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(NotoriousMonsterTerritory::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct NotoriousMonsterTerritory { + pub r#notorious_monsters: Vec, +} +impl NotoriousMonsterTerritory { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#notorious_monsters: read_array( + offset, + 10usize, + 1usize, + |offset| { Result::Ok(row.field(0usize + offset)?.into_u16()?) }, + )?, + }) + } +} diff --git a/src/sheet/npc_equip.rs b/src/sheet/npc_equip.rs index b97462e4..759e1de5 100644 --- a/src/sheet/npc_equip.rs +++ b/src/sheet/npc_equip.rs @@ -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 NpcEquip { fn name() -> String { @@ -15,58 +15,88 @@ impl MetadataAdapter for NpcEquip { pub struct NpcEquip { pub r#model_main_hand: u64, pub r#dye_main_hand: u8, + pub r#dye2_main_hand: u8, pub r#model_off_hand: u64, pub r#dye_off_hand: u8, + pub r#dye2_off_hand: u8, pub r#model_head: u32, pub r#dye_head: u8, + pub r#dye2_head: u8, pub r#visor: bool, - pub r#model_body: u32, - pub r#dye_body: u8, - pub r#model_hands: u32, - pub r#dye_hands: u8, - pub r#model_legs: u32, - pub r#dye_legs: u8, - pub r#model_feet: u32, - pub r#dye_feet: u8, - pub r#model_ears: u32, - pub r#dye_ears: u8, - pub r#model_neck: u32, - pub r#dye_neck: u8, - pub r#model_wrists: u32, - pub r#dye_wrists: u8, - pub r#model_left_ring: u32, - pub r#dye_left_ring: u8, - pub r#model_right_ring: u32, - pub r#dye_right_ring: u8, + pub r#model_body: bool, + pub r#dye_body: u32, + pub r#dye2_body: u8, + pub r#model_hands: u8, + pub r#dye_hands: u32, + pub r#dye2_hands: u8, + pub r#model_legs: u8, + pub r#dye_legs: u32, + pub r#dye2_legs: u8, + pub r#model_feet: u8, + pub r#dye_feet: u32, + pub r#dye2_feet: u8, + pub r#model_ears: u8, + pub r#dye_ears: u32, + pub r#dye2_ears: u8, + pub r#model_neck: u8, + pub r#dye_neck: u32, + pub r#dye2_neck: u8, + pub r#model_wrists: u8, + pub r#dye_wrists: u32, + pub r#dye2_wrists: u8, + pub r#model_left_ring: u8, + pub r#dye_left_ring: u32, + pub r#dye2_left_ring: u8, + pub r#model_right_ring: u8, + pub r#dye_right_ring: u32, + pub r#dye2_right_ring: u8, + pub r#unknown37: u8, + pub r#unknown38: u16, + pub r#unknown39: u16, } impl NpcEquip { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#model_main_hand: row.field(0usize + offset)?.into_u64()?, r#dye_main_hand: row.field(1usize + offset)?.into_u8()?, - r#model_off_hand: row.field(2usize + offset)?.into_u64()?, - r#dye_off_hand: row.field(3usize + offset)?.into_u8()?, - r#model_head: row.field(4usize + offset)?.into_u32()?, - r#dye_head: row.field(5usize + offset)?.into_u8()?, - r#visor: row.field(6usize + offset)?.into_bool()?, - r#model_body: row.field(7usize + offset)?.into_u32()?, - r#dye_body: row.field(8usize + offset)?.into_u8()?, - r#model_hands: row.field(9usize + offset)?.into_u32()?, - r#dye_hands: row.field(10usize + offset)?.into_u8()?, - r#model_legs: row.field(11usize + offset)?.into_u32()?, - r#dye_legs: row.field(12usize + offset)?.into_u8()?, - r#model_feet: row.field(13usize + offset)?.into_u32()?, - r#dye_feet: row.field(14usize + offset)?.into_u8()?, - r#model_ears: row.field(15usize + offset)?.into_u32()?, - r#dye_ears: row.field(16usize + offset)?.into_u8()?, - r#model_neck: row.field(17usize + offset)?.into_u32()?, - r#dye_neck: row.field(18usize + offset)?.into_u8()?, - r#model_wrists: row.field(19usize + offset)?.into_u32()?, - r#dye_wrists: row.field(20usize + offset)?.into_u8()?, - r#model_left_ring: row.field(21usize + offset)?.into_u32()?, - r#dye_left_ring: row.field(22usize + offset)?.into_u8()?, - r#model_right_ring: row.field(23usize + offset)?.into_u32()?, - r#dye_right_ring: row.field(24usize + offset)?.into_u8()?, + r#dye2_main_hand: row.field(2usize + offset)?.into_u8()?, + r#model_off_hand: row.field(3usize + offset)?.into_u64()?, + r#dye_off_hand: row.field(4usize + offset)?.into_u8()?, + r#dye2_off_hand: row.field(5usize + offset)?.into_u8()?, + r#model_head: row.field(6usize + offset)?.into_u32()?, + r#dye_head: row.field(7usize + offset)?.into_u8()?, + r#dye2_head: row.field(8usize + offset)?.into_u8()?, + r#visor: row.field(9usize + offset)?.into_bool()?, + r#model_body: row.field(10usize + offset)?.into_bool()?, + r#dye_body: row.field(11usize + offset)?.into_u32()?, + r#dye2_body: row.field(12usize + offset)?.into_u8()?, + r#model_hands: row.field(13usize + offset)?.into_u8()?, + r#dye_hands: row.field(14usize + offset)?.into_u32()?, + r#dye2_hands: row.field(15usize + offset)?.into_u8()?, + r#model_legs: row.field(16usize + offset)?.into_u8()?, + r#dye_legs: row.field(17usize + offset)?.into_u32()?, + r#dye2_legs: row.field(18usize + offset)?.into_u8()?, + r#model_feet: row.field(19usize + offset)?.into_u8()?, + r#dye_feet: row.field(20usize + offset)?.into_u32()?, + r#dye2_feet: row.field(21usize + offset)?.into_u8()?, + r#model_ears: row.field(22usize + offset)?.into_u8()?, + r#dye_ears: row.field(23usize + offset)?.into_u32()?, + r#dye2_ears: row.field(24usize + offset)?.into_u8()?, + r#model_neck: row.field(25usize + offset)?.into_u8()?, + r#dye_neck: row.field(26usize + offset)?.into_u32()?, + r#dye2_neck: row.field(27usize + offset)?.into_u8()?, + r#model_wrists: row.field(28usize + offset)?.into_u8()?, + r#dye_wrists: row.field(29usize + offset)?.into_u32()?, + r#dye2_wrists: row.field(30usize + offset)?.into_u8()?, + r#model_left_ring: row.field(31usize + offset)?.into_u8()?, + r#dye_left_ring: row.field(32usize + offset)?.into_u32()?, + r#dye2_left_ring: row.field(33usize + offset)?.into_u8()?, + r#model_right_ring: row.field(34usize + offset)?.into_u8()?, + r#dye_right_ring: row.field(35usize + offset)?.into_u32()?, + r#dye2_right_ring: row.field(36usize + offset)?.into_u8()?, + r#unknown37: row.field(37usize + offset)?.into_u8()?, + r#unknown38: row.field(38usize + offset)?.into_u16()?, + r#unknown39: row.field(39usize + offset)?.into_u16()?, }) } } diff --git a/src/sheet/npc_yell.rs b/src/sheet/npc_yell.rs index 592cf8fc..81809762 100644 --- a/src/sheet/npc_yell.rs +++ b/src/sheet/npc_yell.rs @@ -1,8 +1,8 @@ -use std::result::Result; +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 NpcYell { fn name() -> String { "NpcYell".to_string() @@ -19,12 +19,16 @@ pub struct NpcYell { pub r#unknown2: bool, pub r#unknown3: bool, pub r#output_type: u8, - pub r#balloon_time: f32, - pub r#is_balloon_slow: bool, - pub r#battle_talk_time: bool, - pub r#unknown8: u8, - pub r#unknown9: u8, - pub r#text: SeString, + pub r#unknown5: u8, + pub r#balloon_time: u32, + pub r#is_balloon_slow: f32, + pub r#battle_talk_time: f32, + pub r#unknown9: bool, + pub r#unknown10: bool, + pub r#text: u8, + pub r#unknown12: u8, + pub r#unknown13: SeString, + pub r#unknown14: u16, } impl NpcYell { pub fn populate(row: &Row, offset: usize) -> Result { @@ -34,12 +38,16 @@ impl NpcYell { r#unknown2: row.field(2usize + offset)?.into_bool()?, r#unknown3: row.field(3usize + offset)?.into_bool()?, r#output_type: row.field(4usize + offset)?.into_u8()?, - r#balloon_time: row.field(5usize + offset)?.into_f32()?, - r#is_balloon_slow: row.field(6usize + offset)?.into_bool()?, - r#battle_talk_time: row.field(7usize + offset)?.into_bool()?, - r#unknown8: row.field(8usize + offset)?.into_u8()?, - r#unknown9: row.field(9usize + offset)?.into_u8()?, - r#text: row.field(10usize + offset)?.into_string()?, + r#unknown5: row.field(5usize + offset)?.into_u8()?, + r#balloon_time: row.field(6usize + offset)?.into_u32()?, + r#is_balloon_slow: row.field(7usize + offset)?.into_f32()?, + r#battle_talk_time: row.field(8usize + offset)?.into_f32()?, + r#unknown9: row.field(9usize + offset)?.into_bool()?, + r#unknown10: row.field(10usize + offset)?.into_bool()?, + r#text: row.field(11usize + offset)?.into_u8()?, + r#unknown12: row.field(12usize + offset)?.into_u8()?, + r#unknown13: row.field(13usize + offset)?.into_string()?, + r#unknown14: row.field(14usize + offset)?.into_u16()?, }) } } diff --git a/src/sheet/omen.rs b/src/sheet/omen.rs index e849ac4c..1e88ed51 100644 --- a/src/sheet/omen.rs +++ b/src/sheet/omen.rs @@ -1,8 +1,8 @@ -use crate::metadata::MetadataAdapter; -use std::result::Result; use crate::error::PopulateError; -use ironworks::sestring::SeString; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for Omen { fn name() -> String { "Omen".to_string() @@ -19,6 +19,7 @@ pub struct Omen { pub r#type: u8, pub r#restrict_y_scale: bool, pub r#large_scale: bool, + pub r#unknown5: i8, } impl Omen { pub fn populate(row: &Row, offset: usize) -> Result { @@ -28,6 +29,7 @@ impl Omen { r#type: row.field(2usize + offset)?.into_u8()?, r#restrict_y_scale: row.field(3usize + offset)?.into_bool()?, r#large_scale: row.field(4usize + offset)?.into_bool()?, + r#unknown5: row.field(5usize + offset)?.into_i8()?, }) } } diff --git a/src/sheet/omikuji.rs b/src/sheet/omikuji.rs index c4a9a164..11cc96d8 100644 --- a/src/sheet/omikuji.rs +++ b/src/sheet/omikuji.rs @@ -1,7 +1,8 @@ use crate::error::PopulateError; -use std::result::Result; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for Omikuji { fn name() -> String { "Omikuji".to_string() @@ -12,9 +13,25 @@ impl MetadataAdapter for Omikuji { } } #[derive(Debug)] -pub struct Omikuji {} +pub struct Omikuji { + pub r#unknown0: i32, + pub r#unknown1: i32, + pub r#unknown2: i32, + pub r#unknown3: i32, + pub r#unknown4: i32, + pub r#unknown5: SeString, + pub r#unknown6: SeString, +} impl Omikuji { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_i32()?, + r#unknown1: row.field(1usize + offset)?.into_i32()?, + r#unknown2: row.field(2usize + offset)?.into_i32()?, + r#unknown3: row.field(3usize + offset)?.into_i32()?, + r#unknown4: row.field(4usize + offset)?.into_i32()?, + r#unknown5: row.field(5usize + offset)?.into_string()?, + r#unknown6: row.field(6usize + offset)?.into_string()?, + }) } } diff --git a/src/sheet/omikuji_guidance.rs b/src/sheet/omikuji_guidance.rs index c18da20a..5031efed 100644 --- a/src/sheet/omikuji_guidance.rs +++ b/src/sheet/omikuji_guidance.rs @@ -1,7 +1,8 @@ -use crate::metadata::MetadataAdapter; 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 OmikujiGuidance { fn name() -> String { "OmikujiGuidance".to_string() @@ -12,9 +13,17 @@ impl MetadataAdapter for OmikujiGuidance { } } #[derive(Debug)] -pub struct OmikujiGuidance {} +pub struct OmikujiGuidance { + pub r#unknown0: bool, + pub r#unknown1: SeString, + pub r#unknown2: SeString, +} impl OmikujiGuidance { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_bool()?, + r#unknown1: row.field(1usize + offset)?.into_string()?, + r#unknown2: row.field(2usize + offset)?.into_string()?, + }) } } diff --git a/src/sheet/online_status.rs b/src/sheet/online_status.rs index 8e5246f2..ba73dbd4 100644 --- a/src/sheet/online_status.rs +++ b/src/sheet/online_status.rs @@ -1,8 +1,8 @@ -use std::result::Result; +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; use ironworks::sestring::SeString; -use crate::metadata::MetadataAdapter; -use crate::error::PopulateError; +use std::result::Result; impl MetadataAdapter for OnlineStatus { fn name() -> String { "OnlineStatus".to_string() @@ -14,20 +14,24 @@ impl MetadataAdapter for OnlineStatus { } #[derive(Debug)] pub struct OnlineStatus { + pub r#unknown0: bool, pub r#list: bool, - pub r#unknown1: bool, + pub r#unknown2: bool, pub r#priority: u8, - pub r#name: SeString, pub r#icon: u32, + pub r#unknown5: i32, + pub r#name: SeString, } impl OnlineStatus { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { - r#list: row.field(0usize + offset)?.into_bool()?, - r#unknown1: row.field(1usize + offset)?.into_bool()?, - r#priority: row.field(2usize + offset)?.into_u8()?, - r#name: row.field(3usize + offset)?.into_string()?, + r#unknown0: row.field(0usize + offset)?.into_bool()?, + r#list: row.field(1usize + offset)?.into_bool()?, + r#unknown2: row.field(2usize + offset)?.into_bool()?, + r#priority: row.field(3usize + offset)?.into_u8()?, r#icon: row.field(4usize + offset)?.into_u32()?, + r#unknown5: row.field(5usize + offset)?.into_i32()?, + r#name: row.field(6usize + offset)?.into_string()?, }) } } diff --git a/src/sheet/open_content.rs b/src/sheet/open_content.rs index ee312eec..008067a3 100644 --- a/src/sheet/open_content.rs +++ b/src/sheet/open_content.rs @@ -1,7 +1,7 @@ -use crate::metadata::MetadataAdapter; -use ironworks::excel::Row; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use crate::utility::read_array; +use ironworks::excel::Row; use std::result::Result; use std::vec::Vec; impl MetadataAdapter for OpenContent { diff --git a/src/sheet/open_content_candidate_name.rs b/src/sheet/open_content_candidate_name.rs index 703145a3..51bf14e9 100644 --- a/src/sheet/open_content_candidate_name.rs +++ b/src/sheet/open_content_candidate_name.rs @@ -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 ironworks::excel::Row; impl MetadataAdapter for OpenContentCandidateName { fn name() -> String { "OpenContentCandidateName".to_string() diff --git a/src/sheet/opening.rs b/src/sheet/opening.rs index c768b4e8..8a6df962 100644 --- a/src/sheet/opening.rs +++ b/src/sheet/opening.rs @@ -1,8 +1,8 @@ -use std::result::Result; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; -use crate::error::PopulateError; use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for Opening { fn name() -> String { "Opening".to_string() @@ -16,12 +16,172 @@ impl MetadataAdapter for Opening { pub struct Opening { pub r#name: SeString, pub r#quest: u32, + pub r#unknown2: SeString, + pub r#unknown3: SeString, + pub r#unknown4: SeString, + pub r#unknown5: SeString, + pub r#unknown6: SeString, + pub r#unknown7: SeString, + pub r#unknown8: SeString, + pub r#unknown9: SeString, + pub r#unknown10: SeString, + pub r#unknown11: SeString, + pub r#unknown12: SeString, + pub r#unknown13: SeString, + pub r#unknown14: SeString, + pub r#unknown15: SeString, + pub r#unknown16: SeString, + pub r#unknown17: SeString, + pub r#unknown18: SeString, + pub r#unknown19: SeString, + pub r#unknown20: SeString, + pub r#unknown21: SeString, + pub r#unknown22: SeString, + pub r#unknown23: SeString, + pub r#unknown24: SeString, + pub r#unknown25: SeString, + pub r#unknown26: SeString, + pub r#unknown27: SeString, + pub r#unknown28: SeString, + pub r#unknown29: SeString, + pub r#unknown30: SeString, + pub r#unknown31: SeString, + pub r#unknown32: SeString, + pub r#unknown33: SeString, + pub r#unknown34: SeString, + pub r#unknown35: SeString, + pub r#unknown36: SeString, + pub r#unknown37: SeString, + pub r#unknown38: SeString, + pub r#unknown39: SeString, + pub r#unknown40: SeString, + pub r#unknown41: SeString, + pub r#unknown42: u32, + pub r#unknown43: u32, + pub r#unknown44: u32, + pub r#unknown45: u32, + pub r#unknown46: u32, + pub r#unknown47: u32, + pub r#unknown48: u32, + pub r#unknown49: u32, + pub r#unknown50: u32, + pub r#unknown51: u32, + pub r#unknown52: u32, + pub r#unknown53: u32, + pub r#unknown54: u32, + pub r#unknown55: u32, + pub r#unknown56: u32, + pub r#unknown57: u32, + pub r#unknown58: u32, + pub r#unknown59: u32, + pub r#unknown60: u32, + pub r#unknown61: u32, + pub r#unknown62: u32, + pub r#unknown63: u32, + pub r#unknown64: u32, + pub r#unknown65: u32, + pub r#unknown66: u32, + pub r#unknown67: u32, + pub r#unknown68: u32, + pub r#unknown69: u32, + pub r#unknown70: u32, + pub r#unknown71: u32, + pub r#unknown72: u32, + pub r#unknown73: u32, + pub r#unknown74: u32, + pub r#unknown75: u32, + pub r#unknown76: u32, + pub r#unknown77: u32, + pub r#unknown78: u32, + pub r#unknown79: u32, + pub r#unknown80: u32, + pub r#unknown81: u32, } impl Opening { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#name: row.field(0usize + offset)?.into_string()?, r#quest: row.field(1usize + offset)?.into_u32()?, + r#unknown2: row.field(2usize + offset)?.into_string()?, + r#unknown3: row.field(3usize + offset)?.into_string()?, + r#unknown4: row.field(4usize + offset)?.into_string()?, + r#unknown5: row.field(5usize + offset)?.into_string()?, + r#unknown6: row.field(6usize + offset)?.into_string()?, + r#unknown7: row.field(7usize + offset)?.into_string()?, + r#unknown8: row.field(8usize + offset)?.into_string()?, + r#unknown9: row.field(9usize + offset)?.into_string()?, + r#unknown10: row.field(10usize + offset)?.into_string()?, + r#unknown11: row.field(11usize + offset)?.into_string()?, + r#unknown12: row.field(12usize + offset)?.into_string()?, + r#unknown13: row.field(13usize + offset)?.into_string()?, + r#unknown14: row.field(14usize + offset)?.into_string()?, + r#unknown15: row.field(15usize + offset)?.into_string()?, + r#unknown16: row.field(16usize + offset)?.into_string()?, + r#unknown17: row.field(17usize + offset)?.into_string()?, + r#unknown18: row.field(18usize + offset)?.into_string()?, + r#unknown19: row.field(19usize + offset)?.into_string()?, + r#unknown20: row.field(20usize + offset)?.into_string()?, + r#unknown21: row.field(21usize + offset)?.into_string()?, + r#unknown22: row.field(22usize + offset)?.into_string()?, + r#unknown23: row.field(23usize + offset)?.into_string()?, + r#unknown24: row.field(24usize + offset)?.into_string()?, + r#unknown25: row.field(25usize + offset)?.into_string()?, + r#unknown26: row.field(26usize + offset)?.into_string()?, + r#unknown27: row.field(27usize + offset)?.into_string()?, + r#unknown28: row.field(28usize + offset)?.into_string()?, + r#unknown29: row.field(29usize + offset)?.into_string()?, + r#unknown30: row.field(30usize + offset)?.into_string()?, + r#unknown31: row.field(31usize + offset)?.into_string()?, + r#unknown32: row.field(32usize + offset)?.into_string()?, + r#unknown33: row.field(33usize + offset)?.into_string()?, + r#unknown34: row.field(34usize + offset)?.into_string()?, + r#unknown35: row.field(35usize + offset)?.into_string()?, + r#unknown36: row.field(36usize + offset)?.into_string()?, + r#unknown37: row.field(37usize + offset)?.into_string()?, + r#unknown38: row.field(38usize + offset)?.into_string()?, + r#unknown39: row.field(39usize + offset)?.into_string()?, + r#unknown40: row.field(40usize + offset)?.into_string()?, + r#unknown41: row.field(41usize + offset)?.into_string()?, + r#unknown42: row.field(42usize + offset)?.into_u32()?, + r#unknown43: row.field(43usize + offset)?.into_u32()?, + r#unknown44: row.field(44usize + offset)?.into_u32()?, + r#unknown45: row.field(45usize + offset)?.into_u32()?, + r#unknown46: row.field(46usize + offset)?.into_u32()?, + r#unknown47: row.field(47usize + offset)?.into_u32()?, + r#unknown48: row.field(48usize + offset)?.into_u32()?, + r#unknown49: row.field(49usize + offset)?.into_u32()?, + r#unknown50: row.field(50usize + offset)?.into_u32()?, + r#unknown51: row.field(51usize + offset)?.into_u32()?, + r#unknown52: row.field(52usize + offset)?.into_u32()?, + r#unknown53: row.field(53usize + offset)?.into_u32()?, + r#unknown54: row.field(54usize + offset)?.into_u32()?, + r#unknown55: row.field(55usize + offset)?.into_u32()?, + r#unknown56: row.field(56usize + offset)?.into_u32()?, + r#unknown57: row.field(57usize + offset)?.into_u32()?, + r#unknown58: row.field(58usize + offset)?.into_u32()?, + r#unknown59: row.field(59usize + offset)?.into_u32()?, + r#unknown60: row.field(60usize + offset)?.into_u32()?, + r#unknown61: row.field(61usize + offset)?.into_u32()?, + r#unknown62: row.field(62usize + offset)?.into_u32()?, + r#unknown63: row.field(63usize + offset)?.into_u32()?, + r#unknown64: row.field(64usize + offset)?.into_u32()?, + r#unknown65: row.field(65usize + offset)?.into_u32()?, + r#unknown66: row.field(66usize + offset)?.into_u32()?, + r#unknown67: row.field(67usize + offset)?.into_u32()?, + r#unknown68: row.field(68usize + offset)?.into_u32()?, + r#unknown69: row.field(69usize + offset)?.into_u32()?, + r#unknown70: row.field(70usize + offset)?.into_u32()?, + r#unknown71: row.field(71usize + offset)?.into_u32()?, + r#unknown72: row.field(72usize + offset)?.into_u32()?, + r#unknown73: row.field(73usize + offset)?.into_u32()?, + r#unknown74: row.field(74usize + offset)?.into_u32()?, + r#unknown75: row.field(75usize + offset)?.into_u32()?, + r#unknown76: row.field(76usize + offset)?.into_u32()?, + r#unknown77: row.field(77usize + offset)?.into_u32()?, + r#unknown78: row.field(78usize + offset)?.into_u32()?, + r#unknown79: row.field(79usize + offset)?.into_u32()?, + r#unknown80: row.field(80usize + offset)?.into_u32()?, + r#unknown81: row.field(81usize + offset)?.into_u32()?, }) } } diff --git a/src/sheet/orchestrion.rs b/src/sheet/orchestrion.rs index e238286e..6bb6770a 100644 --- a/src/sheet/orchestrion.rs +++ b/src/sheet/orchestrion.rs @@ -1,8 +1,8 @@ use crate::error::PopulateError; -use ironworks::sestring::SeString; -use std::result::Result; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for Orchestrion { fn name() -> String { "Orchestrion".to_string() diff --git a/src/sheet/orchestrion_category.rs b/src/sheet/orchestrion_category.rs index 82cd5262..afca8a4f 100644 --- a/src/sheet/orchestrion_category.rs +++ b/src/sheet/orchestrion_category.rs @@ -1,8 +1,8 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; -use std::result::Result; -use crate::error::PopulateError; use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for OrchestrionCategory { fn name() -> String { "OrchestrionCategory".to_string() @@ -18,6 +18,7 @@ pub struct OrchestrionCategory { pub r#hide_order: u8, pub r#icon: u32, pub r#order: u8, + pub r#unknown4: bool, } impl OrchestrionCategory { pub fn populate(row: &Row, offset: usize) -> Result { @@ -26,6 +27,7 @@ impl OrchestrionCategory { r#hide_order: row.field(1usize + offset)?.into_u8()?, r#icon: row.field(2usize + offset)?.into_u32()?, r#order: row.field(3usize + offset)?.into_u8()?, + r#unknown4: row.field(4usize + offset)?.into_bool()?, }) } } diff --git a/src/sheet/orchestrion_path.rs b/src/sheet/orchestrion_path.rs index c41f08af..59ce37ed 100644 --- a/src/sheet/orchestrion_path.rs +++ b/src/sheet/orchestrion_path.rs @@ -1,8 +1,8 @@ -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; -use std::result::Result; use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for OrchestrionPath { fn name() -> String { "OrchestrionPath".to_string() diff --git a/src/sheet/orchestrion_uiparam.rs b/src/sheet/orchestrion_uiparam.rs index d7744475..c0586a19 100644 --- a/src/sheet/orchestrion_uiparam.rs +++ b/src/sheet/orchestrion_uiparam.rs @@ -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 OrchestrionUiparam { fn name() -> String { "OrchestrionUiparam".to_string() diff --git a/src/sheet/ornament.rs b/src/sheet/ornament.rs index aa1ce434..e525bd6f 100644 --- a/src/sheet/ornament.rs +++ b/src/sheet/ornament.rs @@ -1,7 +1,7 @@ use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; use ironworks::sestring::SeString; -use crate::metadata::MetadataAdapter; use std::result::Result; impl MetadataAdapter for Ornament { fn name() -> String { @@ -27,6 +27,7 @@ pub struct Ornament { pub r#plural: SeString, pub r#possessive_pronoun: i8, pub r#starts_with_vowel: i8, + pub r#unknown13: i8, pub r#pronoun: i8, pub r#article: i8, } @@ -46,8 +47,9 @@ impl Ornament { r#plural: row.field(10usize + offset)?.into_string()?, r#possessive_pronoun: row.field(11usize + offset)?.into_i8()?, r#starts_with_vowel: row.field(12usize + offset)?.into_i8()?, - r#pronoun: row.field(13usize + offset)?.into_i8()?, - r#article: row.field(14usize + offset)?.into_i8()?, + r#unknown13: row.field(13usize + offset)?.into_i8()?, + r#pronoun: row.field(14usize + offset)?.into_i8()?, + r#article: row.field(15usize + offset)?.into_i8()?, }) } } diff --git a/src/sheet/ornament_action.rs b/src/sheet/ornament_action.rs index 334417ae..bd2c0f70 100644 --- a/src/sheet/ornament_action.rs +++ b/src/sheet/ornament_action.rs @@ -1,7 +1,7 @@ -use std::result::Result; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for OrnamentAction { fn name() -> String { "OrnamentAction".to_string() @@ -12,9 +12,23 @@ impl MetadataAdapter for OrnamentAction { } } #[derive(Debug)] -pub struct OrnamentAction {} +pub struct OrnamentAction { + pub r#unknown0: u16, + pub r#unknown1: u16, + pub r#unknown2: u16, + pub r#unknown3: u16, + pub r#unknown4: u16, + pub r#unknown5: u16, +} impl OrnamentAction { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u16()?, + r#unknown1: row.field(1usize + offset)?.into_u16()?, + r#unknown2: row.field(2usize + offset)?.into_u16()?, + r#unknown3: row.field(3usize + offset)?.into_u16()?, + r#unknown4: row.field(4usize + offset)?.into_u16()?, + r#unknown5: row.field(5usize + offset)?.into_u16()?, + }) } } diff --git a/src/sheet/param_grow.rs b/src/sheet/param_grow.rs index e5aebf18..c37d3f7f 100644 --- a/src/sheet/param_grow.rs +++ b/src/sheet/param_grow.rs @@ -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 ParamGrow { fn name() -> String { diff --git a/src/sheet/party_content.rs b/src/sheet/party_content.rs index 162c0247..e8b1da0f 100644 --- a/src/sheet/party_content.rs +++ b/src/sheet/party_content.rs @@ -1,9 +1,9 @@ use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use crate::utility::read_array; use ironworks::excel::Row; -use std::vec::Vec; use std::result::Result; -use crate::utility::read_array; -use crate::metadata::MetadataAdapter; +use std::vec::Vec; impl MetadataAdapter for PartyContent { fn name() -> String { "PartyContent".to_string() @@ -26,6 +26,7 @@ pub struct PartyContent { pub r#unknown32: u16, pub r#content_finder_condition: u16, pub r#image: u32, + pub r#unknown35: u8, } impl PartyContent { pub fn populate(row: &Row, offset: usize) -> Result { @@ -56,6 +57,7 @@ impl PartyContent { r#unknown32: row.field(32usize + offset)?.into_u16()?, r#content_finder_condition: row.field(33usize + offset)?.into_u16()?, r#image: row.field(34usize + offset)?.into_u32()?, + r#unknown35: row.field(35usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/party_content_cutscene.rs b/src/sheet/party_content_cutscene.rs index 5dd718f9..d1ca6eb0 100644 --- a/src/sheet/party_content_cutscene.rs +++ b/src/sheet/party_content_cutscene.rs @@ -1,7 +1,7 @@ -use std::result::Result; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for PartyContentCutscene { fn name() -> String { "PartyContentCutscene".to_string() @@ -14,11 +14,13 @@ impl MetadataAdapter for PartyContentCutscene { #[derive(Debug)] pub struct PartyContentCutscene { pub r#cutscene: u32, + pub r#unknown1: u32, } impl PartyContentCutscene { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#cutscene: row.field(0usize + offset)?.into_u32()?, + r#unknown1: row.field(1usize + offset)?.into_u32()?, }) } } diff --git a/src/sheet/party_content_text_data.rs b/src/sheet/party_content_text_data.rs index a2e7b3cd..2ab94a59 100644 --- a/src/sheet/party_content_text_data.rs +++ b/src/sheet/party_content_text_data.rs @@ -1,8 +1,8 @@ use crate::error::PopulateError; -use std::result::Result; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for PartyContentTextData { fn name() -> String { "PartyContentTextData".to_string() diff --git a/src/sheet/patch_mark.rs b/src/sheet/patch_mark.rs index 985379b3..260b0d2b 100644 --- a/src/sheet/patch_mark.rs +++ b/src/sheet/patch_mark.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; use crate::error::PopulateError; -use std::result::Result; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for PatchMark { fn name() -> String { "PatchMark".to_string() @@ -20,6 +20,7 @@ pub struct PatchMark { pub r#unknown4: u32, pub r#mark_id: u32, pub r#version: u8, + pub r#unknown7: u16, } impl PatchMark { pub fn populate(row: &Row, offset: usize) -> Result { @@ -31,6 +32,7 @@ impl PatchMark { r#unknown4: row.field(4usize + offset)?.into_u32()?, r#mark_id: row.field(5usize + offset)?.into_u32()?, r#version: row.field(6usize + offset)?.into_u8()?, + r#unknown7: row.field(7usize + offset)?.into_u16()?, }) } } diff --git a/src/sheet/perform.rs b/src/sheet/perform.rs index 751b73c4..b29b32ff 100644 --- a/src/sheet/perform.rs +++ b/src/sheet/perform.rs @@ -1,8 +1,8 @@ -use std::result::Result; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for Perform { fn name() -> String { "Perform".to_string() @@ -26,6 +26,7 @@ pub struct Perform { pub r#instrument: SeString, pub r#order: i32, pub r#transient: u8, + pub r#unknown12: u8, } impl Perform { pub fn populate(row: &Row, offset: usize) -> Result { @@ -42,6 +43,7 @@ impl Perform { r#instrument: row.field(9usize + offset)?.into_string()?, r#order: row.field(10usize + offset)?.into_i32()?, r#transient: row.field(11usize + offset)?.into_u8()?, + r#unknown12: row.field(12usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/perform_group.rs b/src/sheet/perform_group.rs index abfa0504..c7322bb9 100644 --- a/src/sheet/perform_group.rs +++ b/src/sheet/perform_group.rs @@ -1,9 +1,9 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use crate::utility::read_array; use ironworks::excel::Row; -use crate::metadata::MetadataAdapter; use std::result::Result; use std::vec::Vec; -use crate::error::PopulateError; impl MetadataAdapter for PerformGroup { fn name() -> String { "PerformGroup".to_string() diff --git a/src/sheet/perform_transient.rs b/src/sheet/perform_transient.rs index aecac395..2bd323e3 100644 --- a/src/sheet/perform_transient.rs +++ b/src/sheet/perform_transient.rs @@ -1,6 +1,6 @@ -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use ironworks::sestring::SeString; use std::result::Result; impl MetadataAdapter for PerformTransient { diff --git a/src/sheet/pet.rs b/src/sheet/pet.rs index 0ace76c0..0958377a 100644 --- a/src/sheet/pet.rs +++ b/src/sheet/pet.rs @@ -1,5 +1,5 @@ -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; use ironworks::sestring::SeString; use std::result::Result; @@ -15,11 +15,47 @@ impl MetadataAdapter for Pet { #[derive(Debug)] pub struct Pet { pub r#name: SeString, + pub r#unknown1: u16, + pub r#unknown2: u16, + pub r#unknown3: u16, + pub r#unknown4: u16, + pub r#unknown5: u16, + pub r#unknown6: bool, + pub r#unknown7: bool, + pub r#unknown8: bool, + pub r#unknown9: u8, + pub r#unknown10: u8, + pub r#unknown11: u8, + pub r#unknown12: i8, + pub r#unknown13: u8, + pub r#unknown14: u8, + pub r#unknown15: u8, + pub r#unknown16: u8, + pub r#unknown17: u8, + pub r#unknown18: u8, } impl Pet { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#name: row.field(0usize + offset)?.into_string()?, + r#unknown1: row.field(1usize + offset)?.into_u16()?, + r#unknown2: row.field(2usize + offset)?.into_u16()?, + r#unknown3: row.field(3usize + offset)?.into_u16()?, + r#unknown4: row.field(4usize + offset)?.into_u16()?, + r#unknown5: row.field(5usize + offset)?.into_u16()?, + r#unknown6: row.field(6usize + offset)?.into_bool()?, + r#unknown7: row.field(7usize + offset)?.into_bool()?, + r#unknown8: row.field(8usize + offset)?.into_bool()?, + r#unknown9: row.field(9usize + offset)?.into_u8()?, + r#unknown10: row.field(10usize + offset)?.into_u8()?, + r#unknown11: row.field(11usize + offset)?.into_u8()?, + r#unknown12: row.field(12usize + offset)?.into_i8()?, + r#unknown13: row.field(13usize + offset)?.into_u8()?, + r#unknown14: row.field(14usize + offset)?.into_u8()?, + r#unknown15: row.field(15usize + offset)?.into_u8()?, + r#unknown16: row.field(16usize + offset)?.into_u8()?, + r#unknown17: row.field(17usize + offset)?.into_u8()?, + r#unknown18: row.field(18usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/pet_action.rs b/src/sheet/pet_action.rs index 586e9692..a3ba8fa8 100644 --- a/src/sheet/pet_action.rs +++ b/src/sheet/pet_action.rs @@ -1,8 +1,8 @@ -use std::result::Result; -use ironworks::sestring::SeString; -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for PetAction { fn name() -> String { "PetAction".to_string() @@ -21,6 +21,7 @@ pub struct PetAction { pub r#pet: u8, pub r#master_order: bool, pub r#disable_order: bool, + pub r#unknown7: bool, } impl PetAction { pub fn populate(row: &Row, offset: usize) -> Result { @@ -32,6 +33,7 @@ impl PetAction { r#pet: row.field(4usize + offset)?.into_u8()?, r#master_order: row.field(5usize + offset)?.into_bool()?, r#disable_order: row.field(6usize + offset)?.into_bool()?, + r#unknown7: row.field(7usize + offset)?.into_bool()?, }) } } diff --git a/src/sheet/pet_mirage.rs b/src/sheet/pet_mirage.rs index 9c3f5793..618c7d27 100644 --- a/src/sheet/pet_mirage.rs +++ b/src/sheet/pet_mirage.rs @@ -1,8 +1,8 @@ -use std::result::Result; -use ironworks::excel::Row; use crate::error::PopulateError; -use ironworks::sestring::SeString; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for PetMirage { fn name() -> String { "PetMirage".to_string() @@ -17,6 +17,66 @@ pub struct PetMirage { pub r#unknown0: f32, pub r#unknown1: u16, pub r#name: SeString, + pub r#unknown3: u16, + pub r#unknown4: u16, + pub r#unknown5: u16, + pub r#unknown6: u16, + pub r#unknown7: u16, + pub r#unknown8: u16, + pub r#unknown9: u16, + pub r#unknown10: u16, + pub r#unknown11: u16, + pub r#unknown12: u16, + pub r#unknown13: u16, + pub r#unknown14: u16, + pub r#unknown15: u16, + pub r#unknown16: u16, + pub r#unknown17: u16, + pub r#unknown18: u8, + pub r#unknown19: u8, + pub r#unknown20: u8, + pub r#unknown21: u8, + pub r#unknown22: u8, + pub r#unknown23: u8, + pub r#unknown24: u8, + pub r#unknown25: u8, + pub r#unknown26: u8, + pub r#unknown27: u8, + pub r#unknown28: u8, + pub r#unknown29: u8, + pub r#unknown30: u8, + pub r#unknown31: u8, + pub r#unknown32: u8, + pub r#unknown33: u16, + pub r#unknown34: u16, + pub r#unknown35: u16, + pub r#unknown36: u16, + pub r#unknown37: u16, + pub r#unknown38: u16, + pub r#unknown39: u16, + pub r#unknown40: u16, + pub r#unknown41: u16, + pub r#unknown42: u16, + pub r#unknown43: u16, + pub r#unknown44: u16, + pub r#unknown45: u16, + pub r#unknown46: u16, + pub r#unknown47: u16, + pub r#unknown48: u16, + pub r#unknown49: u16, + pub r#unknown50: u16, + pub r#unknown51: u16, + pub r#unknown52: u16, + pub r#unknown53: u16, + pub r#unknown54: u16, + pub r#unknown55: u16, + pub r#unknown56: u16, + pub r#unknown57: u16, + pub r#unknown58: u16, + pub r#unknown59: u16, + pub r#unknown60: u16, + pub r#unknown61: u16, + pub r#unknown62: u16, } impl PetMirage { pub fn populate(row: &Row, offset: usize) -> Result { @@ -24,6 +84,66 @@ impl PetMirage { r#unknown0: row.field(0usize + offset)?.into_f32()?, r#unknown1: row.field(1usize + offset)?.into_u16()?, r#name: row.field(2usize + offset)?.into_string()?, + r#unknown3: row.field(3usize + offset)?.into_u16()?, + r#unknown4: row.field(4usize + offset)?.into_u16()?, + r#unknown5: row.field(5usize + 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_u16()?, + r#unknown10: row.field(10usize + offset)?.into_u16()?, + r#unknown11: row.field(11usize + offset)?.into_u16()?, + r#unknown12: row.field(12usize + offset)?.into_u16()?, + r#unknown13: row.field(13usize + offset)?.into_u16()?, + r#unknown14: row.field(14usize + offset)?.into_u16()?, + r#unknown15: row.field(15usize + offset)?.into_u16()?, + r#unknown16: row.field(16usize + offset)?.into_u16()?, + r#unknown17: row.field(17usize + offset)?.into_u16()?, + r#unknown18: row.field(18usize + offset)?.into_u8()?, + r#unknown19: row.field(19usize + offset)?.into_u8()?, + r#unknown20: row.field(20usize + offset)?.into_u8()?, + r#unknown21: row.field(21usize + offset)?.into_u8()?, + r#unknown22: row.field(22usize + offset)?.into_u8()?, + r#unknown23: row.field(23usize + offset)?.into_u8()?, + r#unknown24: row.field(24usize + offset)?.into_u8()?, + r#unknown25: row.field(25usize + offset)?.into_u8()?, + r#unknown26: row.field(26usize + offset)?.into_u8()?, + r#unknown27: row.field(27usize + offset)?.into_u8()?, + r#unknown28: row.field(28usize + offset)?.into_u8()?, + r#unknown29: row.field(29usize + offset)?.into_u8()?, + r#unknown30: row.field(30usize + offset)?.into_u8()?, + r#unknown31: row.field(31usize + offset)?.into_u8()?, + r#unknown32: row.field(32usize + offset)?.into_u8()?, + r#unknown33: row.field(33usize + offset)?.into_u16()?, + r#unknown34: row.field(34usize + offset)?.into_u16()?, + r#unknown35: row.field(35usize + offset)?.into_u16()?, + r#unknown36: row.field(36usize + offset)?.into_u16()?, + r#unknown37: row.field(37usize + offset)?.into_u16()?, + r#unknown38: row.field(38usize + offset)?.into_u16()?, + r#unknown39: row.field(39usize + offset)?.into_u16()?, + r#unknown40: row.field(40usize + offset)?.into_u16()?, + r#unknown41: row.field(41usize + offset)?.into_u16()?, + r#unknown42: row.field(42usize + offset)?.into_u16()?, + r#unknown43: row.field(43usize + offset)?.into_u16()?, + r#unknown44: row.field(44usize + offset)?.into_u16()?, + r#unknown45: row.field(45usize + offset)?.into_u16()?, + r#unknown46: row.field(46usize + offset)?.into_u16()?, + r#unknown47: row.field(47usize + offset)?.into_u16()?, + r#unknown48: row.field(48usize + offset)?.into_u16()?, + r#unknown49: row.field(49usize + offset)?.into_u16()?, + r#unknown50: row.field(50usize + offset)?.into_u16()?, + r#unknown51: row.field(51usize + offset)?.into_u16()?, + r#unknown52: row.field(52usize + offset)?.into_u16()?, + r#unknown53: row.field(53usize + offset)?.into_u16()?, + r#unknown54: row.field(54usize + offset)?.into_u16()?, + r#unknown55: row.field(55usize + offset)?.into_u16()?, + r#unknown56: row.field(56usize + offset)?.into_u16()?, + r#unknown57: row.field(57usize + offset)?.into_u16()?, + r#unknown58: row.field(58usize + offset)?.into_u16()?, + r#unknown59: row.field(59usize + offset)?.into_u16()?, + r#unknown60: row.field(60usize + offset)?.into_u16()?, + r#unknown61: row.field(61usize + offset)?.into_u16()?, + r#unknown62: row.field(62usize + offset)?.into_u16()?, }) } } diff --git a/src/sheet/physics_group.rs b/src/sheet/physics_group.rs index 1ce94cf3..4cf1973d 100644 --- a/src/sheet/physics_group.rs +++ b/src/sheet/physics_group.rs @@ -1,9 +1,9 @@ -use std::vec::Vec; use crate::error::PopulateError; -use ironworks::excel::Row; -use crate::utility::read_array; use crate::metadata::MetadataAdapter; +use crate::utility::read_array; +use ironworks::excel::Row; use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for PhysicsGroup { fn name() -> String { "PhysicsGroup".to_string() diff --git a/src/sheet/physics_wind.rs b/src/sheet/physics_wind.rs index 61645072..52576e60 100644 --- a/src/sheet/physics_wind.rs +++ b/src/sheet/physics_wind.rs @@ -1,7 +1,7 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; use ironworks::excel::Row; -use crate::error::PopulateError; +use std::result::Result; impl MetadataAdapter for PhysicsWind { fn name() -> String { "PhysicsWind".to_string() diff --git a/src/sheet/picture.rs b/src/sheet/picture.rs index 0ae3eed9..ecd59c4b 100644 --- a/src/sheet/picture.rs +++ b/src/sheet/picture.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; use crate::error::PopulateError; -use std::result::Result; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for Picture { fn name() -> String { "Picture".to_string() diff --git a/src/sheet/place_name.rs b/src/sheet/place_name.rs index 2d6054f9..3aefa06b 100644 --- a/src/sheet/place_name.rs +++ b/src/sheet/place_name.rs @@ -1,8 +1,8 @@ -use ironworks::sestring::SeString; +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 PlaceName { fn name() -> String { "PlaceName".to_string() @@ -17,6 +17,15 @@ pub struct PlaceName { pub r#name: SeString, pub r#unknown1: i8, pub r#name_no_article: SeString, + pub r#unknown3: i8, + pub r#unknown4: i8, + pub r#unknown5: i8, + pub r#unknown6: i8, + pub r#unknown7: i8, + pub r#unknown8: SeString, + pub r#unknown9: u8, + pub r#unknown10: u16, + pub r#unknown11: u8, } impl PlaceName { pub fn populate(row: &Row, offset: usize) -> Result { @@ -24,6 +33,15 @@ impl PlaceName { r#name: row.field(0usize + offset)?.into_string()?, r#unknown1: row.field(1usize + offset)?.into_i8()?, r#name_no_article: row.field(2usize + offset)?.into_string()?, + r#unknown3: row.field(3usize + offset)?.into_i8()?, + r#unknown4: row.field(4usize + offset)?.into_i8()?, + r#unknown5: row.field(5usize + offset)?.into_i8()?, + r#unknown6: row.field(6usize + offset)?.into_i8()?, + r#unknown7: row.field(7usize + offset)?.into_i8()?, + r#unknown8: row.field(8usize + offset)?.into_string()?, + r#unknown9: row.field(9usize + offset)?.into_u8()?, + r#unknown10: row.field(10usize + offset)?.into_u16()?, + r#unknown11: row.field(11usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/plant_pot_flower_seed.rs b/src/sheet/plant_pot_flower_seed.rs index 61731e90..55068fc5 100644 --- a/src/sheet/plant_pot_flower_seed.rs +++ b/src/sheet/plant_pot_flower_seed.rs @@ -1,9 +1,9 @@ -use crate::utility::read_array; -use crate::metadata::MetadataAdapter; -use std::vec::Vec; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use crate::utility::read_array; use ironworks::excel::Row; use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for PlantPotFlowerSeed { fn name() -> String { "PlantPotFlowerSeed".to_string() diff --git a/src/sheet/player_search_location.rs b/src/sheet/player_search_location.rs index e259038f..3454e0bc 100644 --- a/src/sheet/player_search_location.rs +++ b/src/sheet/player_search_location.rs @@ -1,6 +1,7 @@ -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use ironworks::sestring::SeString; use std::result::Result; impl MetadataAdapter for PlayerSearchLocation { fn name() -> String { @@ -12,9 +13,15 @@ impl MetadataAdapter for PlayerSearchLocation { } } #[derive(Debug)] -pub struct PlayerSearchLocation {} +pub struct PlayerSearchLocation { + pub r#unknown0: u8, + pub r#unknown1: SeString, +} impl PlayerSearchLocation { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u8()?, + r#unknown1: row.field(1usize + offset)?.into_string()?, + }) } } diff --git a/src/sheet/player_search_sub_location.rs b/src/sheet/player_search_sub_location.rs index c18284d4..060bd5c9 100644 --- a/src/sheet/player_search_sub_location.rs +++ b/src/sheet/player_search_sub_location.rs @@ -1,7 +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 std::result::Result; impl MetadataAdapter for PlayerSearchSubLocation { fn name() -> String { "PlayerSearchSubLocation".to_string() @@ -12,9 +13,23 @@ impl MetadataAdapter for PlayerSearchSubLocation { } } #[derive(Debug)] -pub struct PlayerSearchSubLocation {} +pub struct PlayerSearchSubLocation { + pub r#unknown0: u8, + pub r#unknown1: i32, + pub r#unknown2: i32, + pub r#unknown3: SeString, + pub r#unknown4: SeString, + pub r#unknown5: SeString, +} impl PlayerSearchSubLocation { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u8()?, + r#unknown1: row.field(1usize + offset)?.into_i32()?, + r#unknown2: row.field(2usize + offset)?.into_i32()?, + r#unknown3: row.field(3usize + offset)?.into_string()?, + r#unknown4: row.field(4usize + offset)?.into_string()?, + r#unknown5: row.field(5usize + offset)?.into_string()?, + }) } } diff --git a/src/sheet/pre_handler.rs b/src/sheet/pre_handler.rs index 520c279e..57e41157 100644 --- a/src/sheet/pre_handler.rs +++ b/src/sheet/pre_handler.rs @@ -1,8 +1,8 @@ use crate::error::PopulateError; -use ironworks::sestring::SeString; -use std::result::Result; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for PreHandler { fn name() -> String { "PreHandler".to_string() @@ -20,6 +20,8 @@ pub struct PreHandler { pub r#unlock_quest: u32, pub r#accept_message: u32, pub r#deny_message: u32, + pub r#unknown6: u8, + pub r#unknown7: u8, } impl PreHandler { pub fn populate(row: &Row, offset: usize) -> Result { @@ -30,6 +32,8 @@ impl PreHandler { r#unlock_quest: row.field(3usize + offset)?.into_u32()?, r#accept_message: row.field(4usize + offset)?.into_u32()?, r#deny_message: row.field(5usize + offset)?.into_u32()?, + r#unknown6: row.field(6usize + offset)?.into_u8()?, + r#unknown7: row.field(7usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/preset_camera.rs b/src/sheet/preset_camera.rs index 7c287f00..98cb478f 100644 --- a/src/sheet/preset_camera.rs +++ b/src/sheet/preset_camera.rs @@ -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 PresetCamera { fn name() -> String { "PresetCamera".to_string() @@ -30,6 +30,7 @@ pub struct PresetCamera { pub r#miqote_f: f32, pub r#roe_f: f32, pub r#hrothgar_f: f32, + pub r#unknown17: f32, pub r#viera_f: f32, } impl PresetCamera { @@ -52,7 +53,8 @@ impl PresetCamera { r#miqote_f: row.field(14usize + offset)?.into_f32()?, r#roe_f: row.field(15usize + offset)?.into_f32()?, r#hrothgar_f: row.field(16usize + offset)?.into_f32()?, - r#viera_f: row.field(17usize + offset)?.into_f32()?, + r#unknown17: row.field(17usize + offset)?.into_f32()?, + r#viera_f: row.field(18usize + offset)?.into_f32()?, }) } } diff --git a/src/sheet/preset_camera_adjust.rs b/src/sheet/preset_camera_adjust.rs index 6638d1a7..49bb8292 100644 --- a/src/sheet/preset_camera_adjust.rs +++ b/src/sheet/preset_camera_adjust.rs @@ -1,6 +1,6 @@ -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use std::result::Result; impl MetadataAdapter for PresetCameraAdjust { fn name() -> String { @@ -27,6 +27,8 @@ pub struct PresetCameraAdjust { pub r#hrothgar_f: f32, pub r#viera_m: f32, pub r#viera_f: f32, + pub r#unknown14: f32, + pub r#unknown15: f32, } impl PresetCameraAdjust { pub fn populate(row: &Row, offset: usize) -> Result { @@ -45,6 +47,8 @@ impl PresetCameraAdjust { r#hrothgar_f: row.field(11usize + offset)?.into_f32()?, r#viera_m: row.field(12usize + offset)?.into_f32()?, r#viera_f: row.field(13usize + offset)?.into_f32()?, + r#unknown14: row.field(14usize + offset)?.into_f32()?, + r#unknown15: row.field(15usize + offset)?.into_f32()?, }) } } diff --git a/src/sheet/previewable_items.rs b/src/sheet/previewable_items.rs new file mode 100644 index 00000000..0f8b08fc --- /dev/null +++ b/src/sheet/previewable_items.rs @@ -0,0 +1,24 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; +impl MetadataAdapter for PreviewableItems { + fn name() -> String { + "PreviewableItems".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(PreviewableItems::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct PreviewableItems { + pub r#unknown0: u16, +} +impl PreviewableItems { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u16()?, + }) + } +} diff --git a/src/sheet/public_content.rs b/src/sheet/public_content.rs index e279173f..c550a161 100644 --- a/src/sheet/public_content.rs +++ b/src/sheet/public_content.rs @@ -1,9 +1,8 @@ -use std::result::Result; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use ironworks::sestring::SeString; use ironworks::excel::Row; -use std::convert::Infallible; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for PublicContent { fn name() -> String { "PublicContent".to_string() @@ -24,16 +23,15 @@ pub struct PublicContent { pub r#start_cutscene: u32, pub r#lgb_event_range: u32, pub r#lgb_pop_range: u32, - pub r#unknown9: u16, - pub r#unknown10: u16, + pub r#content_finder_condition: u16, + pub r#additional_data: u16, pub r#unknown11: u8, pub r#unknown12: u16, pub r#unknown13: u16, pub r#unknown14: u16, pub r#unknown15: u16, pub r#end_cutscene: u32, - pub r#content_finder_condition: Option, - pub r#additional_data: Option, + pub r#unknown17: u16, } impl PublicContent { pub fn populate(row: &Row, offset: usize) -> Result { @@ -47,16 +45,15 @@ impl PublicContent { r#start_cutscene: row.field(6usize + offset)?.into_u32()?, r#lgb_event_range: row.field(7usize + offset)?.into_u32()?, r#lgb_pop_range: row.field(8usize + offset)?.into_u32()?, - r#unknown9: row.field(9usize + offset)?.into_u16()?, - r#unknown10: row.field(10usize + offset)?.into_u16()?, + r#content_finder_condition: row.field(9usize + offset)?.into_u16()?, + r#additional_data: row.field(10usize + offset)?.into_u16()?, r#unknown11: row.field(11usize + offset)?.into_u8()?, r#unknown12: row.field(12usize + offset)?.into_u16()?, r#unknown13: row.field(13usize + offset)?.into_u16()?, r#unknown14: row.field(14usize + offset)?.into_u16()?, r#unknown15: row.field(15usize + offset)?.into_u16()?, r#end_cutscene: row.field(16usize + offset)?.into_u32()?, - r#content_finder_condition: None, - r#additional_data: None, + r#unknown17: row.field(17usize + offset)?.into_u16()?, }) } } diff --git a/src/sheet/public_content_cutscene.rs b/src/sheet/public_content_cutscene.rs index 60f1b837..b6f45488 100644 --- a/src/sheet/public_content_cutscene.rs +++ b/src/sheet/public_content_cutscene.rs @@ -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 PublicContentCutscene { fn name() -> String { "PublicContentCutscene".to_string() diff --git a/src/sheet/public_content_text_data.rs b/src/sheet/public_content_text_data.rs index fb201162..68ce6091 100644 --- a/src/sheet/public_content_text_data.rs +++ b/src/sheet/public_content_text_data.rs @@ -1,8 +1,8 @@ -use std::result::Result; -use ironworks::excel::Row; use crate::error::PopulateError; -use ironworks::sestring::SeString; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for PublicContentTextData { fn name() -> String { "PublicContentTextData".to_string() diff --git a/src/sheet/pv_p_action.rs b/src/sheet/pv_p_action.rs index d4ed2359..948fad09 100644 --- a/src/sheet/pv_p_action.rs +++ b/src/sheet/pv_p_action.rs @@ -1,9 +1,9 @@ -use std::vec::Vec; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use ironworks::excel::Row; use crate::utility::read_array; +use ironworks::excel::Row; use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for PvPAction { fn name() -> String { "PvPAction".to_string() @@ -21,6 +21,7 @@ pub struct PvPAction { pub r#unknown3: u16, pub r#unknown4: u16, pub r#grand_company: Vec, + pub r#unknown8: u8, } impl PvPAction { pub fn populate(row: &Row, offset: usize) -> Result { @@ -36,6 +37,7 @@ impl PvPAction { 1usize, |offset| { Result::Ok(row.field(5usize + offset)?.into_bool()?) }, )?, + r#unknown8: row.field(8usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/pv_p_action_sort.rs b/src/sheet/pv_p_action_sort.rs index 6e406f03..d0b8553f 100644 --- a/src/sheet/pv_p_action_sort.rs +++ b/src/sheet/pv_p_action_sort.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; -use std::result::Result; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for PvPActionSort { fn name() -> String { "PvPActionSort".to_string() @@ -15,12 +15,18 @@ impl MetadataAdapter for PvPActionSort { pub struct PvPActionSort { pub r#action_type: u8, pub r#action: u16, + pub r#unknown2: bool, + pub r#unknown3: bool, + pub r#unknown4: i32, } impl PvPActionSort { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#action_type: row.field(0usize + offset)?.into_u8()?, r#action: row.field(1usize + offset)?.into_u16()?, + r#unknown2: row.field(2usize + offset)?.into_bool()?, + r#unknown3: row.field(3usize + offset)?.into_bool()?, + r#unknown4: row.field(4usize + offset)?.into_i32()?, }) } } diff --git a/src/sheet/pv_p_base_param_value.rs b/src/sheet/pv_p_base_param_value.rs new file mode 100644 index 00000000..2967f537 --- /dev/null +++ b/src/sheet/pv_p_base_param_value.rs @@ -0,0 +1,28 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; +impl MetadataAdapter for PvPBaseParamValue { + fn name() -> String { + "PvPBaseParamValue".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(PvPBaseParamValue::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct PvPBaseParamValue { + pub r#unknown0: u32, + pub r#unknown1: u32, + pub r#unknown2: u32, +} +impl PvPBaseParamValue { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u32()?, + r#unknown1: row.field(1usize + offset)?.into_u32()?, + r#unknown2: row.field(2usize + offset)?.into_u32()?, + }) + } +} diff --git a/src/sheet/pv_p_rank.rs b/src/sheet/pv_p_rank.rs index 87b4898a..9fb7b327 100644 --- a/src/sheet/pv_p_rank.rs +++ b/src/sheet/pv_p_rank.rs @@ -1,7 +1,7 @@ use crate::error::PopulateError; -use std::result::Result; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for PvPRank { fn name() -> String { "PvPRank".to_string() diff --git a/src/sheet/pv_p_select_trait.rs b/src/sheet/pv_p_select_trait.rs index e8ad9a6f..ae15c26d 100644 --- a/src/sheet/pv_p_select_trait.rs +++ b/src/sheet/pv_p_select_trait.rs @@ -1,8 +1,8 @@ -use std::result::Result; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; -use crate::error::PopulateError; use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for PvPSelectTrait { fn name() -> String { "PvPSelectTrait".to_string() diff --git a/src/sheet/pv_p_series.rs b/src/sheet/pv_p_series.rs index e611b380..9aac034e 100644 --- a/src/sheet/pv_p_series.rs +++ b/src/sheet/pv_p_series.rs @@ -1,9 +1,9 @@ -use std::result::Result; use crate::error::PopulateError; -use std::vec::Vec; -use ironworks::excel::Row; -use crate::utility::read_array; use crate::metadata::MetadataAdapter; +use crate::utility::read_array; +use ironworks::excel::Row; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for PvPSeries { fn name() -> String { "PvPSeries".to_string() @@ -50,6 +50,38 @@ pub struct PvPSeries { pub r#unknown0: u8, pub r#level_reward_item: Vec, pub r#level_reward_count: Vec, + pub r#unknown129: i32, + pub r#unknown130: i32, + pub r#unknown131: i32, + pub r#unknown132: i32, + pub r#unknown133: i32, + pub r#unknown134: i32, + pub r#unknown135: i32, + pub r#unknown136: i32, + pub r#unknown137: i32, + pub r#unknown138: i32, + pub r#unknown139: i32, + pub r#unknown140: i32, + pub r#unknown141: i32, + pub r#unknown142: i32, + pub r#unknown143: i32, + pub r#unknown144: i32, + pub r#unknown145: i32, + pub r#unknown146: i32, + pub r#unknown147: i32, + pub r#unknown148: i32, + pub r#unknown149: i32, + pub r#unknown150: i32, + pub r#unknown151: i32, + pub r#unknown152: i32, + pub r#unknown153: i32, + pub r#unknown154: i32, + pub r#unknown155: i32, + pub r#unknown156: i32, + pub r#unknown157: i32, + pub r#unknown158: i32, + pub r#unknown159: i32, + pub r#unknown160: i32, } impl PvPSeries { pub fn populate(row: &Row, offset: usize) -> Result { @@ -71,6 +103,38 @@ impl PvPSeries { Result::Ok(PvPSeries_LevelRewardCount::populate(row, offset)?) }, )?, + r#unknown129: row.field(129usize + offset)?.into_i32()?, + r#unknown130: row.field(130usize + offset)?.into_i32()?, + r#unknown131: row.field(131usize + offset)?.into_i32()?, + r#unknown132: row.field(132usize + offset)?.into_i32()?, + r#unknown133: row.field(133usize + offset)?.into_i32()?, + r#unknown134: row.field(134usize + offset)?.into_i32()?, + r#unknown135: row.field(135usize + offset)?.into_i32()?, + r#unknown136: row.field(136usize + offset)?.into_i32()?, + r#unknown137: row.field(137usize + offset)?.into_i32()?, + r#unknown138: row.field(138usize + offset)?.into_i32()?, + r#unknown139: row.field(139usize + offset)?.into_i32()?, + r#unknown140: row.field(140usize + offset)?.into_i32()?, + r#unknown141: row.field(141usize + offset)?.into_i32()?, + r#unknown142: row.field(142usize + offset)?.into_i32()?, + r#unknown143: row.field(143usize + offset)?.into_i32()?, + r#unknown144: row.field(144usize + offset)?.into_i32()?, + r#unknown145: row.field(145usize + offset)?.into_i32()?, + r#unknown146: row.field(146usize + offset)?.into_i32()?, + r#unknown147: row.field(147usize + offset)?.into_i32()?, + r#unknown148: row.field(148usize + offset)?.into_i32()?, + r#unknown149: row.field(149usize + offset)?.into_i32()?, + r#unknown150: row.field(150usize + offset)?.into_i32()?, + r#unknown151: row.field(151usize + offset)?.into_i32()?, + r#unknown152: row.field(152usize + offset)?.into_i32()?, + r#unknown153: row.field(153usize + offset)?.into_i32()?, + r#unknown154: row.field(154usize + offset)?.into_i32()?, + r#unknown155: row.field(155usize + offset)?.into_i32()?, + r#unknown156: row.field(156usize + offset)?.into_i32()?, + r#unknown157: row.field(157usize + offset)?.into_i32()?, + r#unknown158: row.field(158usize + offset)?.into_i32()?, + r#unknown159: row.field(159usize + offset)?.into_i32()?, + r#unknown160: row.field(160usize + offset)?.into_i32()?, }) } } diff --git a/src/sheet/pv_p_series_level.rs b/src/sheet/pv_p_series_level.rs index cba8950f..1ee925a7 100644 --- a/src/sheet/pv_p_series_level.rs +++ b/src/sheet/pv_p_series_level.rs @@ -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 PvPSeriesLevel { fn name() -> String { "PvPSeriesLevel".to_string() @@ -12,9 +12,13 @@ impl MetadataAdapter for PvPSeriesLevel { } } #[derive(Debug)] -pub struct PvPSeriesLevel {} +pub struct PvPSeriesLevel { + pub r#unknown0: u16, +} impl PvPSeriesLevel { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u16()?, + }) } } diff --git a/src/sheet/pv_p_trait.rs b/src/sheet/pv_p_trait.rs index ad50aa3f..ebd281fb 100644 --- a/src/sheet/pv_p_trait.rs +++ b/src/sheet/pv_p_trait.rs @@ -1,6 +1,6 @@ use crate::error::PopulateError; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use std::result::Result; impl MetadataAdapter for PvPTrait { fn name() -> String { diff --git a/src/sheet/quest.rs b/src/sheet/quest.rs index 3b0c300b..410a18a4 100644 --- a/src/sheet/quest.rs +++ b/src/sheet/quest.rs @@ -1,10 +1,10 @@ -use std::vec::Vec; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use crate::utility::read_array; -use ironworks::sestring::SeString; -use crate::error::PopulateError; use ironworks::excel::Row; +use ironworks::sestring::SeString; use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for Quest { fn name() -> String { "Quest".to_string() @@ -25,10 +25,7 @@ pub struct Quest { pub r#class_job_category1: u8, pub r#class_job_level1: u16, pub r#previous_quest_join: u8, - pub r#previous_quest0: u32, - pub r#unknown10: u8, - pub r#previous_quest1: u32, - pub r#previous_quest2: u32, + pub r#previous_quest: Vec, pub r#quest_lock_join: u8, pub r#quest_lock: Vec, pub r#header: u16, @@ -39,7 +36,7 @@ pub struct Quest { pub r#grand_company_rank: u8, pub r#instance_content_join: u8, pub r#instance_content: Vec, - pub r#festival: u8, + pub r#festival: u16, pub r#festival_begin: u8, pub r#festival_end: u8, pub r#bell_start: u16, @@ -62,76 +59,206 @@ pub struct Quest { pub r#can_cancel: bool, pub r#type: u8, pub r#quest_class_job_supply: u16, + pub r#unknown49: u8, pub r#script_instruction: Vec, pub r#script_arg: Vec, pub r#actor_spawn_seq: Vec, pub r#actor_despawn_seq: Vec, - pub r#listener: Vec, + pub r#listener: Vec, pub r#quest_u_int8_a: Vec, pub r#quest_u_int8_b: Vec, - pub r#condition_type: Vec, - pub r#condition_value: Vec, + pub r#condition_type: Vec, + pub r#condition_value: Vec, pub r#condition_operator: Vec, - pub r#behavior: Vec, - pub r#visible_bool: Vec, - pub r#condition_bool: Vec, + pub r#behavior: Vec, + pub r#visible_bool: Vec, + pub r#condition_bool: Vec, pub r#item_bool: Vec, pub r#announce_bool: Vec, pub r#behavior_bool: Vec, pub r#accept_bool: Vec, pub r#qualified_bool: Vec, pub r#can_target_bool: Vec, - pub r#to_do_complete_seq: Vec, - pub r#to_do_qty: Vec, - pub r#to_do_main_location: Vec, - pub r#to_do_child_location: Vec>, - pub r#countable_num: Vec, - pub r#level_max: u8, - pub r#class_job_required: u8, - pub r#quest_reward_other_display: u8, - pub r#exp_factor: u16, + pub r#to_do_complete_seq: Vec, + pub r#to_do_qty: Vec, + pub r#to_do_location: Vec>, + pub r#countable_num: Vec, + pub r#level_max: u32, + pub r#class_job_required: u32, + pub r#quest_reward_other_display: u32, + pub r#exp_factor: u32, pub r#gil_reward: u32, pub r#currency_reward: u32, pub r#currency_reward_count: u32, - pub r#item_catalyst: Vec, - pub r#item_count_catalyst: Vec, - pub r#item_reward_type: u8, + pub r#item_catalyst: Vec, + pub r#item_count_catalyst: Vec, + pub r#item_reward_type: u32, pub r#item_reward: Vec, - pub r#item_count_reward: Vec, - pub r#unknown1465: bool, - pub r#unknown1466: bool, - pub r#unknown1467: bool, - pub r#unknown1468: bool, - pub r#unknown1469: bool, - pub r#unknown1470: bool, - pub r#unknown1471: bool, - pub r#stain_reward: Vec, + pub r#item_count_reward: Vec, + pub r#unknown1466: u32, + pub r#unknown1467: u32, + pub r#unknown1468: u32, + pub r#unknown1469: u32, + pub r#unknown1470: u32, + pub r#unknown1471: u32, + pub r#unknown1472: u32, + pub r#stain_reward: Vec, pub r#optional_item_reward: Vec, - pub r#optional_item_count_reward: Vec, - pub r#optional_item_is_hq_reward: Vec, - pub r#optional_item_stain_reward: Vec, - pub r#emote_reward: u8, - pub r#action_reward: u16, - pub r#general_action_reward: Vec, - pub r#system_reward0: u16, - pub r#other_reward: u8, - pub r#system_reward1: u16, - pub r#gc_type_reward: u16, + pub r#optional_item_count_reward: Vec, + pub r#optional_item_is_hq_reward: Vec, + pub r#optional_item_stain_reward: Vec, + pub r#emote_reward: u32, + pub r#action_reward: u32, + pub r#general_action_reward: Vec, + pub r#system_reward0: u32, + pub r#other_reward: u32, + pub r#system_reward1: u32, + pub r#gc_type_reward: u32, pub r#instance_content_unlock: u32, - pub r#tomestone: u8, - pub r#tomestone_reward: u8, - pub r#tomestone_count_reward: u8, - pub r#reputation_reward: u8, - pub r#place_name: u16, - pub r#journal_genre: u8, - pub r#unknown1514: u8, + pub r#tomestone: u32, + pub r#tomestone_reward: u32, + pub r#tomestone_count_reward: u32, + pub r#reputation_reward: u32, + pub r#place_name: u32, + pub r#journal_genre: u32, + pub r#unknown1515: u32, pub r#icon: u32, pub r#icon_special: u32, - pub r#introduction: bool, - pub r#hide_offer_icon: bool, - pub r#event_icon_type: u8, - pub r#unknown1520: u8, - pub r#sort_key: u16, + pub r#introduction: u32, + pub r#hide_offer_icon: u32, + pub r#event_icon_type: u32, + pub r#unknown1521: u32, + pub r#sort_key: u32, + pub r#unknown1523: u32, + pub r#unknown1524: u32, + pub r#unknown1525: u32, + pub r#unknown1526: u32, + pub r#unknown1527: u32, + pub r#unknown1528: u32, + pub r#unknown1529: u32, + pub r#unknown1530: u32, + pub r#unknown1531: u32, + pub r#unknown1532: u32, + pub r#unknown1533: u32, + pub r#unknown1534: u32, + pub r#unknown1535: u32, + pub r#unknown1536: u32, + pub r#unknown1537: u32, + pub r#unknown1538: u32, + pub r#unknown1539: u32, + pub r#unknown1540: u32, + pub r#unknown1541: u32, + pub r#unknown1542: u8, + pub r#unknown1543: u8, + pub r#unknown1544: u8, + pub r#unknown1545: u8, + pub r#unknown1546: u8, + pub r#unknown1547: u8, + pub r#unknown1548: u8, + pub r#unknown1549: u8, + pub r#unknown1550: u8, + pub r#unknown1551: u8, + pub r#unknown1552: u8, + pub r#unknown1553: u8, + pub r#unknown1554: u8, + pub r#unknown1555: u8, + pub r#unknown1556: u8, + pub r#unknown1557: u8, + pub r#unknown1558: u8, + pub r#unknown1559: u8, + pub r#unknown1560: u8, + pub r#unknown1561: u8, + pub r#unknown1562: u8, + pub r#unknown1563: u8, + pub r#unknown1564: u8, + pub r#unknown1565: u8, + pub r#unknown1566: u8, + pub r#unknown1567: u8, + pub r#unknown1568: u8, + pub r#unknown1569: u16, + pub r#unknown1570: u32, + pub r#unknown1571: u32, + pub r#unknown1572: u32, + pub r#unknown1573: u8, + pub r#unknown1574: u8, + pub r#unknown1575: u8, + pub r#unknown1576: u8, + pub r#unknown1577: u8, + pub r#unknown1578: u8, + pub r#unknown1579: u8, + pub r#unknown1580: u32, + pub r#unknown1581: u32, + pub r#unknown1582: u32, + pub r#unknown1583: u32, + pub r#unknown1584: u32, + pub r#unknown1585: u32, + pub r#unknown1586: u32, + pub r#unknown1587: u8, + pub r#unknown1588: u8, + pub r#unknown1589: u8, + pub r#unknown1590: u8, + pub r#unknown1591: u8, + pub r#unknown1592: u8, + pub r#unknown1593: u8, + pub r#unknown1594: bool, + pub r#unknown1595: bool, + pub r#unknown1596: bool, + pub r#unknown1597: bool, + pub r#unknown1598: bool, + pub r#unknown1599: bool, + pub r#unknown1600: bool, + pub r#unknown1601: u8, + pub r#unknown1602: u8, + pub r#unknown1603: u8, + pub r#unknown1604: u8, + pub r#unknown1605: u8, + pub r#unknown1606: u8, + pub r#unknown1607: u8, + pub r#unknown1608: u32, + pub r#unknown1609: u32, + pub r#unknown1610: u32, + pub r#unknown1611: u32, + pub r#unknown1612: u32, + pub r#unknown1613: u8, + pub r#unknown1614: u8, + pub r#unknown1615: u8, + pub r#unknown1616: u8, + pub r#unknown1617: u8, + pub r#unknown1618: bool, + pub r#unknown1619: bool, + pub r#unknown1620: bool, + pub r#unknown1621: bool, + pub r#unknown1622: bool, + pub r#unknown1623: u8, + pub r#unknown1624: u8, + pub r#unknown1625: u8, + pub r#unknown1626: u8, + pub r#unknown1627: u8, + pub r#unknown1628: u16, + pub r#unknown1629: u16, + pub r#unknown1630: u8, + pub r#unknown1631: u8, + pub r#unknown1632: u16, + pub r#unknown1633: u8, + pub r#unknown1634: u16, + pub r#unknown1635: u16, + pub r#unknown1636: u32, + pub r#unknown1637: u8, + pub r#unknown1638: u8, + pub r#unknown1639: u8, + pub r#unknown1640: u8, + pub r#unknown1641: u16, + pub r#unknown1642: u32, + pub r#unknown1643: u8, + pub r#unknown1644: u32, + pub r#unknown1645: u32, + pub r#unknown1646: bool, + pub r#unknown1647: bool, + pub r#unknown1648: u8, + pub r#unknown1649: u8, + pub r#unknown1650: u16, + pub r#unknown1651: bool, + pub r#unknown1652: bool, } impl Quest { pub fn populate(row: &Row, offset: usize) -> Result { @@ -145,10 +272,12 @@ impl Quest { r#class_job_category1: row.field(6usize + offset)?.into_u8()?, r#class_job_level1: row.field(7usize + offset)?.into_u16()?, r#previous_quest_join: row.field(8usize + offset)?.into_u8()?, - r#previous_quest0: row.field(9usize + offset)?.into_u32()?, - r#unknown10: row.field(10usize + offset)?.into_u8()?, - r#previous_quest1: row.field(11usize + offset)?.into_u32()?, - r#previous_quest2: row.field(12usize + offset)?.into_u32()?, + r#previous_quest: read_array( + offset, + 4usize, + 1usize, + |offset| { Result::Ok(row.field(9usize + offset)?.into_u32()?) }, + )?, r#quest_lock_join: row.field(13usize + offset)?.into_u8()?, r#quest_lock: read_array( offset, @@ -169,7 +298,7 @@ impl Quest { 1usize, |offset| { Result::Ok(row.field(23usize + offset)?.into_u32()?) }, )?, - r#festival: row.field(26usize + offset)?.into_u8()?, + r#festival: row.field(26usize + offset)?.into_u16()?, r#festival_begin: row.field(27usize + offset)?.into_u8()?, r#festival_end: row.field(28usize + offset)?.into_u8()?, r#bell_start: row.field(29usize + offset)?.into_u16()?, @@ -192,141 +321,136 @@ impl Quest { r#can_cancel: row.field(46usize + offset)?.into_bool()?, r#type: row.field(47usize + offset)?.into_u8()?, r#quest_class_job_supply: row.field(48usize + offset)?.into_u16()?, + r#unknown49: row.field(49usize + offset)?.into_u8()?, r#script_instruction: read_array( offset, 50usize, 1usize, - |offset| { Result::Ok(row.field(49usize + offset)?.into_string()?) }, + |offset| { Result::Ok(row.field(50usize + offset)?.into_string()?) }, )?, r#script_arg: read_array( offset, 50usize, 1usize, - |offset| { Result::Ok(row.field(99usize + offset)?.into_u32()?) }, + |offset| { Result::Ok(row.field(100usize + offset)?.into_u32()?) }, )?, r#actor_spawn_seq: read_array( offset, 64usize, 1usize, - |offset| { Result::Ok(row.field(149usize + offset)?.into_u8()?) }, + |offset| { Result::Ok(row.field(150usize + offset)?.into_u8()?) }, )?, r#actor_despawn_seq: read_array( offset, 64usize, 1usize, - |offset| { Result::Ok(row.field(213usize + offset)?.into_u8()?) }, + |offset| { Result::Ok(row.field(214usize + offset)?.into_u8()?) }, )?, r#listener: read_array( offset, 64usize, 1usize, - |offset| { Result::Ok(row.field(277usize + offset)?.into_u32()?) }, + |offset| { Result::Ok(row.field(278usize + offset)?.into_u8()?) }, )?, r#quest_u_int8_a: read_array( offset, 32usize, 1usize, - |offset| { Result::Ok(row.field(341usize + offset)?.into_u8()?) }, + |offset| { Result::Ok(row.field(342usize + offset)?.into_u8()?) }, )?, r#quest_u_int8_b: read_array( offset, 32usize, 1usize, - |offset| { Result::Ok(row.field(373usize + offset)?.into_u8()?) }, + |offset| { Result::Ok(row.field(374usize + offset)?.into_u8()?) }, )?, r#condition_type: read_array( offset, 64usize, 1usize, - |offset| { Result::Ok(row.field(405usize + offset)?.into_u8()?) }, + |offset| { Result::Ok(row.field(406usize + offset)?.into_u32()?) }, )?, r#condition_value: read_array( offset, 64usize, 1usize, - |offset| { Result::Ok(row.field(469usize + offset)?.into_u32()?) }, + |offset| { Result::Ok(row.field(470usize + offset)?.into_u8()?) }, )?, r#condition_operator: read_array( offset, 64usize, 1usize, - |offset| { Result::Ok(row.field(533usize + offset)?.into_u8()?) }, + |offset| { Result::Ok(row.field(534usize + offset)?.into_u8()?) }, )?, r#behavior: read_array( offset, 64usize, 1usize, - |offset| { Result::Ok(row.field(597usize + offset)?.into_u16()?) }, + |offset| { Result::Ok(row.field(598usize + offset)?.into_u32()?) }, )?, r#visible_bool: read_array( offset, 64usize, 1usize, - |offset| { Result::Ok(row.field(661usize + offset)?.into_bool()?) }, + |offset| { Result::Ok(row.field(662usize + offset)?.into_u8()?) }, )?, r#condition_bool: read_array( offset, 64usize, 1usize, - |offset| { Result::Ok(row.field(725usize + offset)?.into_bool()?) }, + |offset| { Result::Ok(row.field(726usize + offset)?.into_u16()?) }, )?, r#item_bool: read_array( offset, 64usize, 1usize, - |offset| { Result::Ok(row.field(789usize + offset)?.into_bool()?) }, + |offset| { Result::Ok(row.field(790usize + offset)?.into_bool()?) }, )?, r#announce_bool: read_array( offset, 64usize, 1usize, - |offset| { Result::Ok(row.field(853usize + offset)?.into_bool()?) }, + |offset| { Result::Ok(row.field(854usize + offset)?.into_bool()?) }, )?, r#behavior_bool: read_array( offset, 64usize, 1usize, - |offset| { Result::Ok(row.field(917usize + offset)?.into_bool()?) }, + |offset| { Result::Ok(row.field(918usize + offset)?.into_bool()?) }, )?, r#accept_bool: read_array( offset, 64usize, 1usize, - |offset| { Result::Ok(row.field(981usize + offset)?.into_bool()?) }, + |offset| { Result::Ok(row.field(982usize + offset)?.into_bool()?) }, )?, r#qualified_bool: read_array( offset, 64usize, 1usize, - |offset| { Result::Ok(row.field(1045usize + offset)?.into_bool()?) }, + |offset| { Result::Ok(row.field(1046usize + offset)?.into_bool()?) }, )?, r#can_target_bool: read_array( offset, 64usize, 1usize, - |offset| { Result::Ok(row.field(1109usize + offset)?.into_bool()?) }, + |offset| { Result::Ok(row.field(1110usize + offset)?.into_bool()?) }, )?, r#to_do_complete_seq: read_array( offset, 24usize, 1usize, - |offset| { Result::Ok(row.field(1173usize + offset)?.into_u8()?) }, + |offset| { Result::Ok(row.field(1174usize + offset)?.into_bool()?) }, )?, r#to_do_qty: read_array( offset, 24usize, 1usize, - |offset| { Result::Ok(row.field(1197usize + offset)?.into_u8()?) }, + |offset| { Result::Ok(row.field(1198usize + offset)?.into_bool()?) }, )?, - r#to_do_main_location: read_array( + r#to_do_location: read_array( offset, - 24usize, - 1usize, - |offset| { Result::Ok(row.field(1221usize + offset)?.into_u32()?) }, - )?, - r#to_do_child_location: read_array( - offset, - 7usize, + 8usize, 24usize, |offset| { Result::Ok( @@ -335,7 +459,7 @@ impl Quest { 24usize, 1usize, |offset| { - Result::Ok(row.field(1245usize + offset)?.into_u32()?) + Result::Ok(row.field(1222usize + offset)?.into_bool()?) }, )?, ) @@ -345,104 +469,234 @@ impl Quest { offset, 24usize, 1usize, - |offset| { Result::Ok(row.field(1413usize + offset)?.into_u8()?) }, + |offset| { Result::Ok(row.field(1414usize + offset)?.into_u32()?) }, )?, - r#level_max: row.field(1437usize + offset)?.into_u8()?, - r#class_job_required: row.field(1438usize + offset)?.into_u8()?, - r#quest_reward_other_display: row.field(1439usize + offset)?.into_u8()?, - r#exp_factor: row.field(1440usize + offset)?.into_u16()?, - r#gil_reward: row.field(1441usize + offset)?.into_u32()?, - r#currency_reward: row.field(1442usize + offset)?.into_u32()?, - r#currency_reward_count: row.field(1443usize + offset)?.into_u32()?, + r#level_max: row.field(1438usize + offset)?.into_u32()?, + r#class_job_required: row.field(1439usize + offset)?.into_u32()?, + r#quest_reward_other_display: row.field(1440usize + offset)?.into_u32()?, + r#exp_factor: row.field(1441usize + offset)?.into_u32()?, + r#gil_reward: row.field(1442usize + offset)?.into_u32()?, + r#currency_reward: row.field(1443usize + offset)?.into_u32()?, + r#currency_reward_count: row.field(1444usize + offset)?.into_u32()?, r#item_catalyst: read_array( offset, 3usize, 1usize, - |offset| { Result::Ok(row.field(1444usize + offset)?.into_u8()?) }, + |offset| { Result::Ok(row.field(1445usize + offset)?.into_u32()?) }, )?, r#item_count_catalyst: read_array( offset, 3usize, 1usize, - |offset| { Result::Ok(row.field(1447usize + offset)?.into_u8()?) }, + |offset| { Result::Ok(row.field(1448usize + offset)?.into_u32()?) }, )?, - r#item_reward_type: row.field(1450usize + offset)?.into_u8()?, + r#item_reward_type: row.field(1451usize + offset)?.into_u32()?, r#item_reward: read_array( offset, 7usize, 1usize, - |offset| { Result::Ok(row.field(1451usize + offset)?.into_u32()?) }, + |offset| { Result::Ok(row.field(1452usize + offset)?.into_u32()?) }, )?, r#item_count_reward: read_array( offset, 7usize, 1usize, - |offset| { Result::Ok(row.field(1458usize + offset)?.into_u8()?) }, + |offset| { Result::Ok(row.field(1459usize + offset)?.into_u32()?) }, )?, - r#unknown1465: row.field(1465usize + offset)?.into_bool()?, - r#unknown1466: row.field(1466usize + offset)?.into_bool()?, - r#unknown1467: row.field(1467usize + offset)?.into_bool()?, - r#unknown1468: row.field(1468usize + offset)?.into_bool()?, - r#unknown1469: row.field(1469usize + offset)?.into_bool()?, - r#unknown1470: row.field(1470usize + offset)?.into_bool()?, - r#unknown1471: row.field(1471usize + offset)?.into_bool()?, + r#unknown1466: row.field(1466usize + offset)?.into_u32()?, + r#unknown1467: row.field(1467usize + offset)?.into_u32()?, + r#unknown1468: row.field(1468usize + offset)?.into_u32()?, + r#unknown1469: row.field(1469usize + offset)?.into_u32()?, + r#unknown1470: row.field(1470usize + offset)?.into_u32()?, + r#unknown1471: row.field(1471usize + offset)?.into_u32()?, + r#unknown1472: row.field(1472usize + offset)?.into_u32()?, r#stain_reward: read_array( offset, 7usize, 1usize, - |offset| { Result::Ok(row.field(1472usize + offset)?.into_u8()?) }, + |offset| { Result::Ok(row.field(1473usize + offset)?.into_u32()?) }, )?, r#optional_item_reward: read_array( offset, 5usize, 1usize, - |offset| { Result::Ok(row.field(1479usize + offset)?.into_u32()?) }, + |offset| { Result::Ok(row.field(1480usize + offset)?.into_u32()?) }, )?, r#optional_item_count_reward: read_array( offset, 5usize, 1usize, - |offset| { Result::Ok(row.field(1484usize + offset)?.into_u8()?) }, + |offset| { Result::Ok(row.field(1485usize + offset)?.into_u32()?) }, )?, r#optional_item_is_hq_reward: read_array( offset, 5usize, 1usize, - |offset| { Result::Ok(row.field(1489usize + offset)?.into_bool()?) }, + |offset| { Result::Ok(row.field(1490usize + offset)?.into_u32()?) }, )?, r#optional_item_stain_reward: read_array( offset, 5usize, 1usize, - |offset| { Result::Ok(row.field(1494usize + offset)?.into_u8()?) }, + |offset| { Result::Ok(row.field(1495usize + offset)?.into_u32()?) }, )?, - r#emote_reward: row.field(1499usize + offset)?.into_u8()?, - r#action_reward: row.field(1500usize + offset)?.into_u16()?, + r#emote_reward: row.field(1500usize + offset)?.into_u32()?, + r#action_reward: row.field(1501usize + offset)?.into_u32()?, r#general_action_reward: read_array( offset, 2usize, 1usize, - |offset| { Result::Ok(row.field(1501usize + offset)?.into_u8()?) }, - )?, - r#system_reward0: row.field(1503usize + offset)?.into_u16()?, - r#other_reward: row.field(1504usize + offset)?.into_u8()?, - r#system_reward1: row.field(1505usize + offset)?.into_u16()?, - r#gc_type_reward: row.field(1506usize + offset)?.into_u16()?, - r#instance_content_unlock: row.field(1507usize + offset)?.into_u32()?, - r#tomestone: row.field(1508usize + offset)?.into_u8()?, - r#tomestone_reward: row.field(1509usize + offset)?.into_u8()?, - r#tomestone_count_reward: row.field(1510usize + offset)?.into_u8()?, - r#reputation_reward: row.field(1511usize + offset)?.into_u8()?, - r#place_name: row.field(1512usize + offset)?.into_u16()?, - r#journal_genre: row.field(1513usize + offset)?.into_u8()?, - r#unknown1514: row.field(1514usize + offset)?.into_u8()?, - r#icon: row.field(1515usize + offset)?.into_u32()?, - r#icon_special: row.field(1516usize + offset)?.into_u32()?, - r#introduction: row.field(1517usize + offset)?.into_bool()?, - r#hide_offer_icon: row.field(1518usize + offset)?.into_bool()?, - r#event_icon_type: row.field(1519usize + offset)?.into_u8()?, - r#unknown1520: row.field(1520usize + offset)?.into_u8()?, - r#sort_key: row.field(1521usize + offset)?.into_u16()?, + |offset| { Result::Ok(row.field(1502usize + offset)?.into_u32()?) }, + )?, + r#system_reward0: row.field(1504usize + offset)?.into_u32()?, + r#other_reward: row.field(1505usize + offset)?.into_u32()?, + r#system_reward1: row.field(1506usize + offset)?.into_u32()?, + r#gc_type_reward: row.field(1507usize + offset)?.into_u32()?, + r#instance_content_unlock: row.field(1508usize + offset)?.into_u32()?, + r#tomestone: row.field(1509usize + offset)?.into_u32()?, + r#tomestone_reward: row.field(1510usize + offset)?.into_u32()?, + r#tomestone_count_reward: row.field(1511usize + offset)?.into_u32()?, + r#reputation_reward: row.field(1512usize + offset)?.into_u32()?, + r#place_name: row.field(1513usize + offset)?.into_u32()?, + r#journal_genre: row.field(1514usize + offset)?.into_u32()?, + r#unknown1515: row.field(1515usize + offset)?.into_u32()?, + r#icon: row.field(1516usize + offset)?.into_u32()?, + r#icon_special: row.field(1517usize + offset)?.into_u32()?, + r#introduction: row.field(1518usize + offset)?.into_u32()?, + r#hide_offer_icon: row.field(1519usize + offset)?.into_u32()?, + r#event_icon_type: row.field(1520usize + offset)?.into_u32()?, + r#unknown1521: row.field(1521usize + offset)?.into_u32()?, + r#sort_key: row.field(1522usize + offset)?.into_u32()?, + r#unknown1523: row.field(1523usize + offset)?.into_u32()?, + r#unknown1524: row.field(1524usize + offset)?.into_u32()?, + r#unknown1525: row.field(1525usize + offset)?.into_u32()?, + r#unknown1526: row.field(1526usize + offset)?.into_u32()?, + r#unknown1527: row.field(1527usize + offset)?.into_u32()?, + r#unknown1528: row.field(1528usize + offset)?.into_u32()?, + r#unknown1529: row.field(1529usize + offset)?.into_u32()?, + r#unknown1530: row.field(1530usize + offset)?.into_u32()?, + r#unknown1531: row.field(1531usize + offset)?.into_u32()?, + r#unknown1532: row.field(1532usize + offset)?.into_u32()?, + r#unknown1533: row.field(1533usize + offset)?.into_u32()?, + r#unknown1534: row.field(1534usize + offset)?.into_u32()?, + r#unknown1535: row.field(1535usize + offset)?.into_u32()?, + r#unknown1536: row.field(1536usize + offset)?.into_u32()?, + r#unknown1537: row.field(1537usize + offset)?.into_u32()?, + r#unknown1538: row.field(1538usize + offset)?.into_u32()?, + r#unknown1539: row.field(1539usize + offset)?.into_u32()?, + r#unknown1540: row.field(1540usize + offset)?.into_u32()?, + r#unknown1541: row.field(1541usize + offset)?.into_u32()?, + r#unknown1542: row.field(1542usize + offset)?.into_u8()?, + r#unknown1543: row.field(1543usize + offset)?.into_u8()?, + r#unknown1544: row.field(1544usize + offset)?.into_u8()?, + r#unknown1545: row.field(1545usize + offset)?.into_u8()?, + r#unknown1546: row.field(1546usize + offset)?.into_u8()?, + r#unknown1547: row.field(1547usize + offset)?.into_u8()?, + r#unknown1548: row.field(1548usize + offset)?.into_u8()?, + r#unknown1549: row.field(1549usize + offset)?.into_u8()?, + r#unknown1550: row.field(1550usize + offset)?.into_u8()?, + r#unknown1551: row.field(1551usize + offset)?.into_u8()?, + r#unknown1552: row.field(1552usize + offset)?.into_u8()?, + r#unknown1553: row.field(1553usize + offset)?.into_u8()?, + r#unknown1554: row.field(1554usize + offset)?.into_u8()?, + r#unknown1555: row.field(1555usize + offset)?.into_u8()?, + r#unknown1556: row.field(1556usize + offset)?.into_u8()?, + r#unknown1557: row.field(1557usize + offset)?.into_u8()?, + r#unknown1558: row.field(1558usize + offset)?.into_u8()?, + r#unknown1559: row.field(1559usize + offset)?.into_u8()?, + r#unknown1560: row.field(1560usize + offset)?.into_u8()?, + r#unknown1561: row.field(1561usize + offset)?.into_u8()?, + r#unknown1562: row.field(1562usize + offset)?.into_u8()?, + r#unknown1563: row.field(1563usize + offset)?.into_u8()?, + r#unknown1564: row.field(1564usize + offset)?.into_u8()?, + r#unknown1565: row.field(1565usize + offset)?.into_u8()?, + r#unknown1566: row.field(1566usize + offset)?.into_u8()?, + r#unknown1567: row.field(1567usize + offset)?.into_u8()?, + r#unknown1568: row.field(1568usize + offset)?.into_u8()?, + r#unknown1569: row.field(1569usize + offset)?.into_u16()?, + r#unknown1570: row.field(1570usize + offset)?.into_u32()?, + r#unknown1571: row.field(1571usize + offset)?.into_u32()?, + r#unknown1572: row.field(1572usize + offset)?.into_u32()?, + r#unknown1573: row.field(1573usize + offset)?.into_u8()?, + r#unknown1574: row.field(1574usize + offset)?.into_u8()?, + r#unknown1575: row.field(1575usize + offset)?.into_u8()?, + r#unknown1576: row.field(1576usize + offset)?.into_u8()?, + r#unknown1577: row.field(1577usize + offset)?.into_u8()?, + r#unknown1578: row.field(1578usize + offset)?.into_u8()?, + r#unknown1579: row.field(1579usize + offset)?.into_u8()?, + r#unknown1580: row.field(1580usize + offset)?.into_u32()?, + r#unknown1581: row.field(1581usize + offset)?.into_u32()?, + r#unknown1582: row.field(1582usize + offset)?.into_u32()?, + r#unknown1583: row.field(1583usize + offset)?.into_u32()?, + r#unknown1584: row.field(1584usize + offset)?.into_u32()?, + r#unknown1585: row.field(1585usize + offset)?.into_u32()?, + r#unknown1586: row.field(1586usize + offset)?.into_u32()?, + r#unknown1587: row.field(1587usize + offset)?.into_u8()?, + r#unknown1588: row.field(1588usize + offset)?.into_u8()?, + r#unknown1589: row.field(1589usize + offset)?.into_u8()?, + r#unknown1590: row.field(1590usize + offset)?.into_u8()?, + r#unknown1591: row.field(1591usize + offset)?.into_u8()?, + r#unknown1592: row.field(1592usize + offset)?.into_u8()?, + r#unknown1593: row.field(1593usize + offset)?.into_u8()?, + r#unknown1594: row.field(1594usize + offset)?.into_bool()?, + r#unknown1595: row.field(1595usize + offset)?.into_bool()?, + r#unknown1596: row.field(1596usize + offset)?.into_bool()?, + r#unknown1597: row.field(1597usize + offset)?.into_bool()?, + r#unknown1598: row.field(1598usize + offset)?.into_bool()?, + r#unknown1599: row.field(1599usize + offset)?.into_bool()?, + r#unknown1600: row.field(1600usize + offset)?.into_bool()?, + r#unknown1601: row.field(1601usize + offset)?.into_u8()?, + r#unknown1602: row.field(1602usize + offset)?.into_u8()?, + r#unknown1603: row.field(1603usize + offset)?.into_u8()?, + r#unknown1604: row.field(1604usize + offset)?.into_u8()?, + r#unknown1605: row.field(1605usize + offset)?.into_u8()?, + r#unknown1606: row.field(1606usize + offset)?.into_u8()?, + r#unknown1607: row.field(1607usize + offset)?.into_u8()?, + r#unknown1608: row.field(1608usize + offset)?.into_u32()?, + r#unknown1609: row.field(1609usize + offset)?.into_u32()?, + r#unknown1610: row.field(1610usize + offset)?.into_u32()?, + r#unknown1611: row.field(1611usize + offset)?.into_u32()?, + r#unknown1612: row.field(1612usize + offset)?.into_u32()?, + r#unknown1613: row.field(1613usize + offset)?.into_u8()?, + r#unknown1614: row.field(1614usize + offset)?.into_u8()?, + r#unknown1615: row.field(1615usize + offset)?.into_u8()?, + r#unknown1616: row.field(1616usize + offset)?.into_u8()?, + r#unknown1617: row.field(1617usize + offset)?.into_u8()?, + r#unknown1618: row.field(1618usize + offset)?.into_bool()?, + r#unknown1619: row.field(1619usize + offset)?.into_bool()?, + r#unknown1620: row.field(1620usize + offset)?.into_bool()?, + r#unknown1621: row.field(1621usize + offset)?.into_bool()?, + r#unknown1622: row.field(1622usize + offset)?.into_bool()?, + r#unknown1623: row.field(1623usize + offset)?.into_u8()?, + r#unknown1624: row.field(1624usize + offset)?.into_u8()?, + r#unknown1625: row.field(1625usize + offset)?.into_u8()?, + r#unknown1626: row.field(1626usize + offset)?.into_u8()?, + r#unknown1627: row.field(1627usize + offset)?.into_u8()?, + r#unknown1628: row.field(1628usize + offset)?.into_u16()?, + r#unknown1629: row.field(1629usize + offset)?.into_u16()?, + r#unknown1630: row.field(1630usize + offset)?.into_u8()?, + r#unknown1631: row.field(1631usize + offset)?.into_u8()?, + r#unknown1632: row.field(1632usize + offset)?.into_u16()?, + r#unknown1633: row.field(1633usize + offset)?.into_u8()?, + r#unknown1634: row.field(1634usize + offset)?.into_u16()?, + r#unknown1635: row.field(1635usize + offset)?.into_u16()?, + r#unknown1636: row.field(1636usize + offset)?.into_u32()?, + r#unknown1637: row.field(1637usize + offset)?.into_u8()?, + r#unknown1638: row.field(1638usize + offset)?.into_u8()?, + r#unknown1639: row.field(1639usize + offset)?.into_u8()?, + r#unknown1640: row.field(1640usize + offset)?.into_u8()?, + r#unknown1641: row.field(1641usize + offset)?.into_u16()?, + r#unknown1642: row.field(1642usize + offset)?.into_u32()?, + r#unknown1643: row.field(1643usize + offset)?.into_u8()?, + r#unknown1644: row.field(1644usize + offset)?.into_u32()?, + r#unknown1645: row.field(1645usize + offset)?.into_u32()?, + r#unknown1646: row.field(1646usize + offset)?.into_bool()?, + r#unknown1647: row.field(1647usize + offset)?.into_bool()?, + r#unknown1648: row.field(1648usize + offset)?.into_u8()?, + r#unknown1649: row.field(1649usize + offset)?.into_u8()?, + r#unknown1650: row.field(1650usize + offset)?.into_u16()?, + r#unknown1651: row.field(1651usize + offset)?.into_bool()?, + r#unknown1652: row.field(1652usize + offset)?.into_bool()?, }) } } diff --git a/src/sheet/quest_accept_addition_condition.rs b/src/sheet/quest_accept_addition_condition.rs index 68d0dffb..2681336e 100644 --- a/src/sheet/quest_accept_addition_condition.rs +++ b/src/sheet/quest_accept_addition_condition.rs @@ -1,5 +1,5 @@ -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; use std::result::Result; impl MetadataAdapter for QuestAcceptAdditionCondition { @@ -13,14 +13,20 @@ impl MetadataAdapter for QuestAcceptAdditionCondition { } #[derive(Debug)] pub struct QuestAcceptAdditionCondition { - pub r#requirement0: u32, + pub r#requirement0: bool, pub r#requirement1: u32, + pub r#unknown2: u32, + pub r#unknown3: u32, + pub r#unknown4: bool, } impl QuestAcceptAdditionCondition { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { - r#requirement0: row.field(0usize + offset)?.into_u32()?, + r#requirement0: row.field(0usize + offset)?.into_bool()?, r#requirement1: row.field(1usize + offset)?.into_u32()?, + r#unknown2: row.field(2usize + offset)?.into_u32()?, + r#unknown3: row.field(3usize + offset)?.into_u32()?, + r#unknown4: row.field(4usize + offset)?.into_bool()?, }) } } diff --git a/src/sheet/quest_battle.rs b/src/sheet/quest_battle.rs index b1f910b2..da4624ee 100644 --- a/src/sheet/quest_battle.rs +++ b/src/sheet/quest_battle.rs @@ -1,10 +1,10 @@ -use ironworks::sestring::SeString; use crate::error::PopulateError; -use std::result::Result; -use std::vec::Vec; use crate::metadata::MetadataAdapter; -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 QuestBattle { fn name() -> String { "QuestBattle".to_string() @@ -32,15 +32,15 @@ impl QuestBattle { r#level_sync: row.field(3usize + offset)?.into_u16()?, r#script_instruction: read_array( offset, - 200usize, + 220usize, 1usize, |offset| { Result::Ok(row.field(4usize + offset)?.into_string()?) }, )?, r#script_value: read_array( offset, - 200usize, + 220usize, 1usize, - |offset| { Result::Ok(row.field(204usize + offset)?.into_u32()?) }, + |offset| { Result::Ok(row.field(224usize + offset)?.into_u32()?) }, )?, }) } diff --git a/src/sheet/quest_chapter.rs b/src/sheet/quest_chapter.rs index a23eb220..68627a85 100644 --- a/src/sheet/quest_chapter.rs +++ b/src/sheet/quest_chapter.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; use crate::error::PopulateError; -use std::result::Result; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for QuestChapter { fn name() -> String { "QuestChapter".to_string() diff --git a/src/sheet/quest_class_job_reward.rs b/src/sheet/quest_class_job_reward.rs index ca529e1b..a954b70d 100644 --- a/src/sheet/quest_class_job_reward.rs +++ b/src/sheet/quest_class_job_reward.rs @@ -1,9 +1,9 @@ -use std::vec::Vec; use crate::error::PopulateError; -use std::result::Result; use crate::metadata::MetadataAdapter; use crate::utility::read_array; use ironworks::excel::Row; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for QuestClassJobReward { fn name() -> String { "QuestClassJobReward".to_string() @@ -19,7 +19,23 @@ pub struct QuestClassJobReward { pub r#reward_item: Vec, pub r#reward_amount: Vec, pub r#required_item: Vec, - pub r#required_amount: Vec, + pub r#required_amount: Vec, + pub r#unknown17: u8, + pub r#unknown18: u8, + pub r#unknown19: u8, + pub r#unknown20: u8, + pub r#unknown21: bool, + pub r#unknown22: bool, + pub r#unknown23: bool, + pub r#unknown24: bool, + pub r#unknown25: bool, + pub r#unknown26: bool, + pub r#unknown27: bool, + pub r#unknown28: bool, + pub r#unknown29: bool, + pub r#unknown30: bool, + pub r#unknown31: bool, + pub r#unknown32: bool, } impl QuestClassJobReward { pub fn populate(row: &Row, offset: usize) -> Result { @@ -47,8 +63,24 @@ impl QuestClassJobReward { offset, 4usize, 1usize, - |offset| { Result::Ok(row.field(13usize + offset)?.into_u8()?) }, + |offset| { Result::Ok(row.field(13usize + offset)?.into_u32()?) }, )?, + r#unknown17: row.field(17usize + offset)?.into_u8()?, + r#unknown18: row.field(18usize + offset)?.into_u8()?, + r#unknown19: row.field(19usize + offset)?.into_u8()?, + r#unknown20: row.field(20usize + offset)?.into_u8()?, + r#unknown21: 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_bool()?, + r#unknown25: row.field(25usize + offset)?.into_bool()?, + r#unknown26: row.field(26usize + offset)?.into_bool()?, + r#unknown27: row.field(27usize + offset)?.into_bool()?, + r#unknown28: row.field(28usize + offset)?.into_bool()?, + r#unknown29: row.field(29usize + offset)?.into_bool()?, + r#unknown30: row.field(30usize + offset)?.into_bool()?, + r#unknown31: row.field(31usize + offset)?.into_bool()?, + r#unknown32: row.field(32usize + offset)?.into_bool()?, }) } } diff --git a/src/sheet/quest_class_job_supply.rs b/src/sheet/quest_class_job_supply.rs index 6912365b..2029956d 100644 --- a/src/sheet/quest_class_job_supply.rs +++ b/src/sheet/quest_class_job_supply.rs @@ -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 QuestClassJobSupply { fn name() -> String { "QuestClassJobSupply".to_string() @@ -19,6 +19,12 @@ pub struct QuestClassJobSupply { pub r#item: u32, pub r#amount_required: u8, pub r#item_hq: bool, + pub r#unknown6: u32, + pub r#unknown7: u32, + pub r#unknown8: u32, + pub r#unknown9: u16, + pub r#unknown10: u8, + pub r#unknown11: u8, } impl QuestClassJobSupply { pub fn populate(row: &Row, offset: usize) -> Result { @@ -29,6 +35,12 @@ impl QuestClassJobSupply { r#item: row.field(3usize + offset)?.into_u32()?, r#amount_required: row.field(4usize + offset)?.into_u8()?, r#item_hq: row.field(5usize + offset)?.into_bool()?, + r#unknown6: row.field(6usize + offset)?.into_u32()?, + r#unknown7: row.field(7usize + offset)?.into_u32()?, + r#unknown8: row.field(8usize + offset)?.into_u32()?, + r#unknown9: row.field(9usize + offset)?.into_u16()?, + r#unknown10: row.field(10usize + offset)?.into_u8()?, + r#unknown11: row.field(11usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/quest_define_client.rs b/src/sheet/quest_define_client.rs new file mode 100644 index 00000000..255b3186 --- /dev/null +++ b/src/sheet/quest_define_client.rs @@ -0,0 +1,27 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; +impl MetadataAdapter for QuestDefineClient { + fn name() -> String { + "QuestDefineClient".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(QuestDefineClient::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct QuestDefineClient { + pub r#unknown0: SeString, + pub r#target: u32, +} +impl QuestDefineClient { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_string()?, + r#target: row.field(1usize + offset)?.into_u32()?, + }) + } +} diff --git a/src/sheet/quest_derived_class.rs b/src/sheet/quest_derived_class.rs index fc855f86..27ba8828 100644 --- a/src/sheet/quest_derived_class.rs +++ b/src/sheet/quest_derived_class.rs @@ -1,7 +1,7 @@ -use crate::metadata::MetadataAdapter; -use std::result::Result; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for QuestDerivedClass { fn name() -> String { "QuestDerivedClass".to_string() diff --git a/src/sheet/quest_effect.rs b/src/sheet/quest_effect.rs index b6f4acb6..50d94154 100644 --- a/src/sheet/quest_effect.rs +++ b/src/sheet/quest_effect.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; use crate::error::PopulateError; -use std::result::Result; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for QuestEffect { fn name() -> String { "QuestEffect".to_string() @@ -12,9 +12,41 @@ impl MetadataAdapter for QuestEffect { } } #[derive(Debug)] -pub struct QuestEffect {} +pub struct QuestEffect { + pub r#unknown0: u8, + pub r#unknown1: u8, + pub r#unknown2: u8, + pub r#unknown3: u8, + pub r#unknown4: u32, + pub r#unknown5: u32, + pub r#unknown6: u32, + pub r#unknown7: u32, + pub r#unknown8: u32, + pub r#unknown9: u32, + pub r#unknown10: u32, + pub r#unknown11: u32, + pub r#unknown12: u32, + pub r#unknown13: u32, + pub r#unknown14: bool, +} impl QuestEffect { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u8()?, + r#unknown1: row.field(1usize + offset)?.into_u8()?, + r#unknown2: row.field(2usize + offset)?.into_u8()?, + r#unknown3: row.field(3usize + offset)?.into_u8()?, + r#unknown4: row.field(4usize + offset)?.into_u32()?, + r#unknown5: row.field(5usize + offset)?.into_u32()?, + r#unknown6: row.field(6usize + offset)?.into_u32()?, + r#unknown7: row.field(7usize + offset)?.into_u32()?, + r#unknown8: row.field(8usize + offset)?.into_u32()?, + r#unknown9: row.field(9usize + offset)?.into_u32()?, + r#unknown10: row.field(10usize + offset)?.into_u32()?, + r#unknown11: row.field(11usize + offset)?.into_u32()?, + r#unknown12: row.field(12usize + offset)?.into_u32()?, + r#unknown13: row.field(13usize + offset)?.into_u32()?, + r#unknown14: row.field(14usize + offset)?.into_bool()?, + }) } } diff --git a/src/sheet/quest_effect_define.rs b/src/sheet/quest_effect_define.rs index 9fe13b40..99b5cb9e 100644 --- a/src/sheet/quest_effect_define.rs +++ b/src/sheet/quest_effect_define.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use std::result::Result; -use crate::error::PopulateError; impl MetadataAdapter for QuestEffectDefine { fn name() -> String { "QuestEffectDefine".to_string() diff --git a/src/sheet/quest_event_area_entrance_info.rs b/src/sheet/quest_event_area_entrance_info.rs new file mode 100644 index 00000000..3a8fe24e --- /dev/null +++ b/src/sheet/quest_event_area_entrance_info.rs @@ -0,0 +1,28 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; +impl MetadataAdapter for QuestEventAreaEntranceInfo { + fn name() -> String { + "QuestEventAreaEntranceInfo".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(QuestEventAreaEntranceInfo::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct QuestEventAreaEntranceInfo { + pub r#quest: u32, + pub r#unknown1: u8, + pub r#location: u32, +} +impl QuestEventAreaEntranceInfo { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#quest: row.field(0usize + offset)?.into_u32()?, + r#unknown1: row.field(1usize + offset)?.into_u8()?, + r#location: row.field(2usize + offset)?.into_u32()?, + }) + } +} diff --git a/src/sheet/quest_link_marker.rs b/src/sheet/quest_link_marker.rs new file mode 100644 index 00000000..811927f0 --- /dev/null +++ b/src/sheet/quest_link_marker.rs @@ -0,0 +1,32 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; +impl MetadataAdapter for QuestLinkMarker { + fn name() -> String { + "QuestLinkMarker".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(QuestLinkMarker::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct QuestLinkMarker { + pub r#source_map: u32, + pub r#level: u32, + pub r#target_map: u32, + pub r#unknown3: u8, + pub r#unknown4: bool, +} +impl QuestLinkMarker { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#source_map: row.field(0usize + offset)?.into_u32()?, + r#level: row.field(1usize + offset)?.into_u32()?, + r#target_map: row.field(2usize + offset)?.into_u32()?, + r#unknown3: row.field(3usize + offset)?.into_u8()?, + r#unknown4: row.field(4usize + offset)?.into_bool()?, + }) + } +} diff --git a/src/sheet/quest_link_marker_icon.rs b/src/sheet/quest_link_marker_icon.rs new file mode 100644 index 00000000..30b331d1 --- /dev/null +++ b/src/sheet/quest_link_marker_icon.rs @@ -0,0 +1,24 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; +impl MetadataAdapter for QuestLinkMarkerIcon { + fn name() -> String { + "QuestLinkMarkerIcon".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(QuestLinkMarkerIcon::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct QuestLinkMarkerIcon { + pub r#icon: u32, +} +impl QuestLinkMarkerIcon { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#icon: row.field(0usize + offset)?.into_u32()?, + }) + } +} diff --git a/src/sheet/quest_link_marker_set.rs b/src/sheet/quest_link_marker_set.rs new file mode 100644 index 00000000..74385ff9 --- /dev/null +++ b/src/sheet/quest_link_marker_set.rs @@ -0,0 +1,36 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; +impl MetadataAdapter for QuestLinkMarkerSet { + fn name() -> String { + "QuestLinkMarkerSet".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(QuestLinkMarkerSet::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct QuestLinkMarkerSet { + pub r#unknown0: u16, + pub r#unknown1: u32, + pub r#unknown2: u8, + pub r#unknown3: u8, + pub r#unknown4: u8, + pub r#unknown5: bool, + pub r#unknown6: bool, +} +impl QuestLinkMarkerSet { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u16()?, + r#unknown1: row.field(1usize + offset)?.into_u32()?, + r#unknown2: row.field(2usize + offset)?.into_u8()?, + r#unknown3: row.field(3usize + offset)?.into_u8()?, + r#unknown4: row.field(4usize + offset)?.into_u8()?, + r#unknown5: row.field(5usize + offset)?.into_bool()?, + r#unknown6: row.field(6usize + offset)?.into_bool()?, + }) + } +} diff --git a/src/sheet/quest_redo.rs b/src/sheet/quest_redo.rs index e16ba275..f92a9e79 100644 --- a/src/sheet/quest_redo.rs +++ b/src/sheet/quest_redo.rs @@ -1,9 +1,9 @@ -use ironworks::excel::Row; -use crate::utility::read_array; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::vec::Vec; +use crate::utility::read_array; +use ironworks::excel::Row; use std::result::Result; -use crate::error::PopulateError; +use std::vec::Vec; impl MetadataAdapter for QuestRedo { fn name() -> String { "QuestRedo".to_string() @@ -20,6 +20,38 @@ pub struct QuestRedo { pub r#unknown2: u8, pub r#chapter: u16, pub r#quest: Vec, + pub r#unknown36: u8, + pub r#unknown37: u8, + pub r#unknown38: u8, + pub r#unknown39: u8, + pub r#unknown40: u8, + pub r#unknown41: u8, + pub r#unknown42: u8, + pub r#unknown43: u8, + pub r#unknown44: u8, + pub r#unknown45: u8, + pub r#unknown46: u8, + pub r#unknown47: u8, + pub r#unknown48: u8, + pub r#unknown49: u8, + pub r#unknown50: u8, + pub r#unknown51: u8, + pub r#unknown52: u8, + pub r#unknown53: u8, + pub r#unknown54: u8, + pub r#unknown55: u8, + pub r#unknown56: u8, + pub r#unknown57: u8, + pub r#unknown58: u8, + pub r#unknown59: u8, + pub r#unknown60: u8, + pub r#unknown61: u8, + pub r#unknown62: u8, + pub r#unknown63: u8, + pub r#unknown64: u8, + pub r#unknown65: u8, + pub r#unknown66: u8, + pub r#unknown67: u8, } impl QuestRedo { pub fn populate(row: &Row, offset: usize) -> Result { @@ -34,6 +66,38 @@ impl QuestRedo { 1usize, |offset| { Result::Ok(row.field(4usize + offset)?.into_u32()?) }, )?, + r#unknown36: row.field(36usize + offset)?.into_u8()?, + r#unknown37: row.field(37usize + offset)?.into_u8()?, + r#unknown38: row.field(38usize + offset)?.into_u8()?, + r#unknown39: row.field(39usize + offset)?.into_u8()?, + r#unknown40: row.field(40usize + offset)?.into_u8()?, + r#unknown41: row.field(41usize + offset)?.into_u8()?, + r#unknown42: row.field(42usize + offset)?.into_u8()?, + r#unknown43: row.field(43usize + offset)?.into_u8()?, + r#unknown44: row.field(44usize + offset)?.into_u8()?, + r#unknown45: row.field(45usize + offset)?.into_u8()?, + r#unknown46: row.field(46usize + offset)?.into_u8()?, + r#unknown47: row.field(47usize + offset)?.into_u8()?, + r#unknown48: row.field(48usize + offset)?.into_u8()?, + r#unknown49: row.field(49usize + offset)?.into_u8()?, + r#unknown50: row.field(50usize + offset)?.into_u8()?, + r#unknown51: row.field(51usize + offset)?.into_u8()?, + r#unknown52: row.field(52usize + offset)?.into_u8()?, + r#unknown53: row.field(53usize + offset)?.into_u8()?, + r#unknown54: row.field(54usize + offset)?.into_u8()?, + r#unknown55: row.field(55usize + offset)?.into_u8()?, + r#unknown56: row.field(56usize + offset)?.into_u8()?, + r#unknown57: row.field(57usize + offset)?.into_u8()?, + r#unknown58: row.field(58usize + offset)?.into_u8()?, + r#unknown59: row.field(59usize + offset)?.into_u8()?, + r#unknown60: row.field(60usize + offset)?.into_u8()?, + r#unknown61: row.field(61usize + offset)?.into_u8()?, + r#unknown62: row.field(62usize + offset)?.into_u8()?, + r#unknown63: row.field(63usize + offset)?.into_u8()?, + r#unknown64: row.field(64usize + offset)?.into_u8()?, + r#unknown65: row.field(65usize + offset)?.into_u8()?, + r#unknown66: row.field(66usize + offset)?.into_u8()?, + r#unknown67: row.field(67usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/quest_redo_chapter_ui.rs b/src/sheet/quest_redo_chapter_ui.rs index bb476a6f..357a7d2c 100644 --- a/src/sheet/quest_redo_chapter_ui.rs +++ b/src/sheet/quest_redo_chapter_ui.rs @@ -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 QuestRedoChapterUI { fn name() -> String { "QuestRedoChapterUI".to_string() diff --git a/src/sheet/quest_redo_chapter_ui_category.rs b/src/sheet/quest_redo_chapter_ui_category.rs index 94332476..40b5d4dc 100644 --- a/src/sheet/quest_redo_chapter_ui_category.rs +++ b/src/sheet/quest_redo_chapter_ui_category.rs @@ -1,6 +1,6 @@ -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use ironworks::sestring::SeString; use std::result::Result; impl MetadataAdapter for QuestRedoChapterUICategory { diff --git a/src/sheet/quest_redo_chapter_ui_tab.rs b/src/sheet/quest_redo_chapter_ui_tab.rs index 31e7eb95..5cbb4a3d 100644 --- a/src/sheet/quest_redo_chapter_ui_tab.rs +++ b/src/sheet/quest_redo_chapter_ui_tab.rs @@ -1,8 +1,8 @@ use crate::error::PopulateError; -use ironworks::sestring::SeString; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use ironworks::sestring::SeString; use std::result::Result; -use crate::metadata::MetadataAdapter; impl MetadataAdapter for QuestRedoChapterUITab { fn name() -> String { "QuestRedoChapterUITab".to_string() diff --git a/src/sheet/quest_redo_incomp_chapter.rs b/src/sheet/quest_redo_incomp_chapter.rs index e1c797eb..6391984e 100644 --- a/src/sheet/quest_redo_incomp_chapter.rs +++ b/src/sheet/quest_redo_incomp_chapter.rs @@ -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 QuestRedoIncompChapter { fn name() -> String { "QuestRedoIncompChapter".to_string() diff --git a/src/sheet/quest_repeat_flag.rs b/src/sheet/quest_repeat_flag.rs index f4a4980b..1409a90b 100644 --- a/src/sheet/quest_repeat_flag.rs +++ b/src/sheet/quest_repeat_flag.rs @@ -1,7 +1,7 @@ -use std::result::Result; -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 QuestRepeatFlag { fn name() -> String { "QuestRepeatFlag".to_string() diff --git a/src/sheet/quest_reward_other.rs b/src/sheet/quest_reward_other.rs index 8a9163f0..61767416 100644 --- a/src/sheet/quest_reward_other.rs +++ b/src/sheet/quest_reward_other.rs @@ -1,8 +1,8 @@ -use std::result::Result; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for QuestRewardOther { fn name() -> String { "QuestRewardOther".to_string() diff --git a/src/sheet/quest_select_title.rs b/src/sheet/quest_select_title.rs new file mode 100644 index 00000000..d2194e01 --- /dev/null +++ b/src/sheet/quest_select_title.rs @@ -0,0 +1,24 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; +impl MetadataAdapter for QuestSelectTitle { + fn name() -> String { + "QuestSelectTitle".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(QuestSelectTitle::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct QuestSelectTitle { + pub r#unknown0: u32, +} +impl QuestSelectTitle { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u32()?, + }) + } +} diff --git a/src/sheet/quest_set_define.rs b/src/sheet/quest_set_define.rs index 3b9a24df..7dda75ff 100644 --- a/src/sheet/quest_set_define.rs +++ b/src/sheet/quest_set_define.rs @@ -1,7 +1,7 @@ -use std::result::Result; -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 QuestSetDefine { fn name() -> String { "QuestSetDefine".to_string() @@ -12,9 +12,13 @@ impl MetadataAdapter for QuestSetDefine { } } #[derive(Debug)] -pub struct QuestSetDefine {} +pub struct QuestSetDefine { + pub r#unknown0: u32, +} impl QuestSetDefine { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u32()?, + }) } } diff --git a/src/sheet/quick_chat.rs b/src/sheet/quick_chat.rs index 5f8ef99e..db0f95e1 100644 --- a/src/sheet/quick_chat.rs +++ b/src/sheet/quick_chat.rs @@ -1,8 +1,8 @@ -use ironworks::excel::Row; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use ironworks::sestring::SeString; use std::result::Result; -use crate::metadata::MetadataAdapter; impl MetadataAdapter for QuickChat { fn name() -> String { "QuickChat".to_string() @@ -18,6 +18,7 @@ pub struct QuickChat { pub r#icon: i32, pub r#addon: i32, pub r#quick_chat_transient: i8, + pub r#unknown4: u16, } impl QuickChat { pub fn populate(row: &Row, offset: usize) -> Result { @@ -26,6 +27,7 @@ impl QuickChat { r#icon: row.field(1usize + offset)?.into_i32()?, r#addon: row.field(2usize + offset)?.into_i32()?, r#quick_chat_transient: row.field(3usize + offset)?.into_i8()?, + r#unknown4: row.field(4usize + offset)?.into_u16()?, }) } } diff --git a/src/sheet/quick_chat_transient.rs b/src/sheet/quick_chat_transient.rs index 2bf004b8..b8f550a4 100644 --- a/src/sheet/quick_chat_transient.rs +++ b/src/sheet/quick_chat_transient.rs @@ -1,8 +1,8 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; use ironworks::sestring::SeString; -use crate::error::PopulateError; use std::result::Result; -use crate::metadata::MetadataAdapter; impl MetadataAdapter for QuickChatTransient { fn name() -> String { "QuickChatTransient".to_string() diff --git a/src/sheet/race.rs b/src/sheet/race.rs index 28bdbf05..3e4aa680 100644 --- a/src/sheet/race.rs +++ b/src/sheet/race.rs @@ -1,8 +1,8 @@ -use std::result::Result; -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; -use ironworks::sestring::SeString; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for Race { fn name() -> String { "Race".to_string() diff --git a/src/sheet/racing_chocobo_item.rs b/src/sheet/racing_chocobo_item.rs index 6bf0024d..394c82e9 100644 --- a/src/sheet/racing_chocobo_item.rs +++ b/src/sheet/racing_chocobo_item.rs @@ -1,9 +1,9 @@ -use ironworks::excel::Row; -use std::vec::Vec; use crate::error::PopulateError; -use std::result::Result; use crate::metadata::MetadataAdapter; use crate::utility::read_array; +use ironworks::excel::Row; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for RacingChocoboItem { fn name() -> String { "RacingChocoboItem".to_string() diff --git a/src/sheet/racing_chocobo_name.rs b/src/sheet/racing_chocobo_name.rs index 5850fe05..6af6cdbb 100644 --- a/src/sheet/racing_chocobo_name.rs +++ b/src/sheet/racing_chocobo_name.rs @@ -1,8 +1,8 @@ -use ironworks::excel::Row; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; +use ironworks::excel::Row; use ironworks::sestring::SeString; -use crate::error::PopulateError; +use std::result::Result; impl MetadataAdapter for RacingChocoboName { fn name() -> String { "RacingChocoboName".to_string() diff --git a/src/sheet/racing_chocobo_name_category.rs b/src/sheet/racing_chocobo_name_category.rs index 7f0e4b46..8697fc0b 100644 --- a/src/sheet/racing_chocobo_name_category.rs +++ b/src/sheet/racing_chocobo_name_category.rs @@ -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 RacingChocoboNameCategory { fn name() -> String { "RacingChocoboNameCategory".to_string() diff --git a/src/sheet/racing_chocobo_name_info.rs b/src/sheet/racing_chocobo_name_info.rs index 716485f3..fce5ffe3 100644 --- a/src/sheet/racing_chocobo_name_info.rs +++ b/src/sheet/racing_chocobo_name_info.rs @@ -1,9 +1,9 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use crate::utility::read_array; -use std::vec::Vec; use ironworks::excel::Row; use std::result::Result; -use crate::metadata::MetadataAdapter; -use crate::error::PopulateError; +use std::vec::Vec; impl MetadataAdapter for RacingChocoboNameInfo { fn name() -> String { "RacingChocoboNameInfo".to_string() @@ -21,6 +21,7 @@ pub struct RacingChocoboNameInfo { pub r#unknown3: bool, pub r#unknown4: bool, pub r#name: Vec, + pub r#unknown8: u16, } impl RacingChocoboNameInfo { pub fn populate(row: &Row, offset: usize) -> Result { @@ -36,6 +37,7 @@ impl RacingChocoboNameInfo { 1usize, |offset| { Result::Ok(row.field(5usize + offset)?.into_u16()?) }, )?, + r#unknown8: row.field(8usize + offset)?.into_u16()?, }) } } diff --git a/src/sheet/racing_chocobo_param.rs b/src/sheet/racing_chocobo_param.rs index 6b739b91..720c268c 100644 --- a/src/sheet/racing_chocobo_param.rs +++ b/src/sheet/racing_chocobo_param.rs @@ -1,7 +1,7 @@ -use ironworks::sestring::SeString; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use ironworks::sestring::SeString; use std::result::Result; impl MetadataAdapter for RacingChocoboParam { fn name() -> String { diff --git a/src/sheet/raid_finder_param.rs b/src/sheet/raid_finder_param.rs index 1fc44f80..f4479020 100644 --- a/src/sheet/raid_finder_param.rs +++ b/src/sheet/raid_finder_param.rs @@ -1,6 +1,6 @@ -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use std::result::Result; impl MetadataAdapter for RaidFinderParam { fn name() -> String { @@ -12,9 +12,13 @@ impl MetadataAdapter for RaidFinderParam { } } #[derive(Debug)] -pub struct RaidFinderParam {} +pub struct RaidFinderParam { + pub r#unknown0: bool, +} impl RaidFinderParam { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_bool()?, + }) } } diff --git a/src/sheet/reaction_event_object.rs b/src/sheet/reaction_event_object.rs index 33bce61c..438ac6f7 100644 --- a/src/sheet/reaction_event_object.rs +++ b/src/sheet/reaction_event_object.rs @@ -1,7 +1,7 @@ -use std::result::Result; -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for ReactionEventObject { fn name() -> String { "ReactionEventObject".to_string() @@ -12,9 +12,15 @@ impl MetadataAdapter for ReactionEventObject { } } #[derive(Debug)] -pub struct ReactionEventObject {} +pub struct ReactionEventObject { + pub r#unknown0: u32, + pub r#unknown1: u32, +} impl ReactionEventObject { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u32()?, + r#unknown1: row.field(1usize + offset)?.into_u32()?, + }) } } diff --git a/src/sheet/reaction_event_object_info.rs b/src/sheet/reaction_event_object_info.rs index ed113ba9..7c6adac5 100644 --- a/src/sheet/reaction_event_object_info.rs +++ b/src/sheet/reaction_event_object_info.rs @@ -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 ReactionEventObjectInfo { fn name() -> String { @@ -12,9 +12,13 @@ impl MetadataAdapter for ReactionEventObjectInfo { } } #[derive(Debug)] -pub struct ReactionEventObjectInfo {} +pub struct ReactionEventObjectInfo { + pub r#unknown0: u32, +} impl ReactionEventObjectInfo { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u32()?, + }) } } diff --git a/src/sheet/recast_navimesh.rs b/src/sheet/recast_navimesh.rs index 44b3baaf..aa4a5cd4 100644 --- a/src/sheet/recast_navimesh.rs +++ b/src/sheet/recast_navimesh.rs @@ -1,8 +1,8 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use ironworks::sestring::SeString; -use crate::error::PopulateError; use std::result::Result; -use ironworks::excel::Row; impl MetadataAdapter for RecastNavimesh { fn name() -> String { "RecastNavimesh".to_string() @@ -31,6 +31,24 @@ pub struct RecastNavimesh { pub r#verts_per_poly: f32, pub r#detail_mesh_sample_distance: f32, pub r#detail_mesh_max_sample_error: f32, + pub r#unknown17: f32, + pub r#unknown18: f32, + pub r#unknown19: f32, + pub r#unknown20: f32, + pub r#unknown21: f32, + pub r#unknown22: f32, + pub r#unknown23: f32, + pub r#unknown24: f32, + pub r#unknown25: f32, + pub r#unknown26: f32, + pub r#unknown27: f32, + pub r#unknown28: f32, + pub r#unknown29: f32, + pub r#unknown30: bool, + pub r#unknown31: f32, + pub r#unknown32: f32, + pub r#unknown33: f32, + pub r#unknown34: bool, } impl RecastNavimesh { pub fn populate(row: &Row, offset: usize) -> Result { @@ -52,6 +70,24 @@ impl RecastNavimesh { r#verts_per_poly: row.field(14usize + offset)?.into_f32()?, r#detail_mesh_sample_distance: row.field(15usize + offset)?.into_f32()?, r#detail_mesh_max_sample_error: row.field(16usize + offset)?.into_f32()?, + r#unknown17: row.field(17usize + offset)?.into_f32()?, + r#unknown18: row.field(18usize + offset)?.into_f32()?, + r#unknown19: row.field(19usize + offset)?.into_f32()?, + r#unknown20: row.field(20usize + offset)?.into_f32()?, + r#unknown21: row.field(21usize + offset)?.into_f32()?, + r#unknown22: row.field(22usize + offset)?.into_f32()?, + r#unknown23: row.field(23usize + offset)?.into_f32()?, + r#unknown24: row.field(24usize + offset)?.into_f32()?, + r#unknown25: row.field(25usize + offset)?.into_f32()?, + r#unknown26: row.field(26usize + offset)?.into_f32()?, + r#unknown27: row.field(27usize + offset)?.into_f32()?, + r#unknown28: row.field(28usize + offset)?.into_f32()?, + r#unknown29: row.field(29usize + offset)?.into_f32()?, + r#unknown30: row.field(30usize + offset)?.into_bool()?, + r#unknown31: row.field(31usize + offset)?.into_f32()?, + r#unknown32: row.field(32usize + offset)?.into_f32()?, + r#unknown33: row.field(33usize + offset)?.into_f32()?, + r#unknown34: row.field(34usize + offset)?.into_bool()?, }) } } diff --git a/src/sheet/recipe.rs b/src/sheet/recipe.rs index 36a147ae..f05635e6 100644 --- a/src/sheet/recipe.rs +++ b/src/sheet/recipe.rs @@ -1,9 +1,9 @@ -use std::vec::Vec; -use crate::utility::read_array; use crate::error::PopulateError; -use std::result::Result; use crate::metadata::MetadataAdapter; +use crate::utility::read_array; use ironworks::excel::Row; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for Recipe { fn name() -> String { "Recipe".to_string() @@ -21,8 +21,8 @@ pub struct Recipe_mIngredient { impl Recipe_mIngredient { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { - r#item_ingredient: row.field(5usize + offset)?.into_i32()?, - r#amount_ingredient: row.field(6usize + offset)?.into_u8()?, + r#item_ingredient: row.field(6usize + offset)?.into_i32()?, + r#amount_ingredient: row.field(7usize + offset)?.into_u8()?, }) } } @@ -31,16 +31,17 @@ pub struct Recipe { pub r#number: i32, pub r#craft_type: i32, pub r#recipe_level_table: u16, + pub r#unknown3: u16, pub r#item_result: i32, pub r#amount_result: u8, pub r#m_ingredient: Vec, pub r#recipe_notebook_list: u16, + pub r#display_priority: u16, pub r#is_secondary: bool, pub r#material_quality_factor: u8, pub r#difficulty_factor: u16, pub r#quality_factor: u16, pub r#durability_factor: u16, - pub r#unknown31: u16, pub r#required_quality: u32, pub r#required_craftsmanship: u16, pub r#required_control: u16, @@ -51,12 +52,14 @@ pub struct Recipe { pub r#can_quick_synth: bool, pub r#can_hq: bool, pub r#exp_rewarded: bool, - pub r#status_required: i32, + pub r#status_required: bool, pub r#item_required: i32, - pub r#is_specialization_required: bool, + pub r#is_specialization_required: i32, pub r#is_expert: bool, - pub r#unknown46: u8, + pub r#unknown43: bool, + pub r#unknown44: u8, pub r#patch_number: u16, + pub r#unknown46: u16, } impl Recipe { pub fn populate(row: &Row, offset: usize) -> Result { @@ -64,37 +67,40 @@ impl Recipe { r#number: row.field(0usize + offset)?.into_i32()?, r#craft_type: row.field(1usize + offset)?.into_i32()?, r#recipe_level_table: row.field(2usize + offset)?.into_u16()?, - r#item_result: row.field(3usize + offset)?.into_i32()?, - r#amount_result: row.field(4usize + offset)?.into_u8()?, + r#unknown3: row.field(3usize + offset)?.into_u16()?, + r#item_result: row.field(4usize + offset)?.into_i32()?, + r#amount_result: row.field(5usize + offset)?.into_u8()?, r#m_ingredient: read_array( offset, - 10usize, + 8usize, 2usize, |offset| { Result::Ok(Recipe_mIngredient::populate(row, offset)?) }, )?, - r#recipe_notebook_list: row.field(25usize + offset)?.into_u16()?, - r#is_secondary: row.field(26usize + offset)?.into_bool()?, - r#material_quality_factor: row.field(27usize + offset)?.into_u8()?, - r#difficulty_factor: row.field(28usize + offset)?.into_u16()?, - r#quality_factor: row.field(29usize + offset)?.into_u16()?, - r#durability_factor: row.field(30usize + offset)?.into_u16()?, - r#unknown31: row.field(31usize + offset)?.into_u16()?, - r#required_quality: row.field(32usize + offset)?.into_u32()?, - r#required_craftsmanship: row.field(33usize + offset)?.into_u16()?, - r#required_control: row.field(34usize + offset)?.into_u16()?, - r#quick_synth_craftsmanship: row.field(35usize + offset)?.into_u16()?, - r#quick_synth_control: row.field(36usize + offset)?.into_u16()?, - r#secret_recipe_book: row.field(37usize + offset)?.into_u16()?, - r#quest: row.field(38usize + offset)?.into_u32()?, - r#can_quick_synth: row.field(39usize + offset)?.into_bool()?, - r#can_hq: row.field(40usize + offset)?.into_bool()?, - r#exp_rewarded: row.field(41usize + offset)?.into_bool()?, - r#status_required: row.field(42usize + offset)?.into_i32()?, - r#item_required: row.field(43usize + offset)?.into_i32()?, - r#is_specialization_required: row.field(44usize + offset)?.into_bool()?, - r#is_expert: row.field(45usize + offset)?.into_bool()?, - r#unknown46: row.field(46usize + offset)?.into_u8()?, - r#patch_number: row.field(47usize + offset)?.into_u16()?, + r#recipe_notebook_list: row.field(22usize + offset)?.into_u16()?, + r#display_priority: row.field(23usize + offset)?.into_u16()?, + r#is_secondary: row.field(24usize + offset)?.into_bool()?, + r#material_quality_factor: row.field(25usize + offset)?.into_u8()?, + r#difficulty_factor: row.field(26usize + offset)?.into_u16()?, + r#quality_factor: row.field(27usize + offset)?.into_u16()?, + r#durability_factor: row.field(28usize + offset)?.into_u16()?, + r#required_quality: row.field(29usize + offset)?.into_u32()?, + r#required_craftsmanship: row.field(30usize + offset)?.into_u16()?, + r#required_control: row.field(31usize + offset)?.into_u16()?, + r#quick_synth_craftsmanship: row.field(32usize + offset)?.into_u16()?, + r#quick_synth_control: row.field(33usize + offset)?.into_u16()?, + r#secret_recipe_book: row.field(34usize + offset)?.into_u16()?, + r#quest: row.field(35usize + offset)?.into_u32()?, + r#can_quick_synth: row.field(36usize + offset)?.into_bool()?, + r#can_hq: row.field(37usize + offset)?.into_bool()?, + r#exp_rewarded: row.field(38usize + offset)?.into_bool()?, + r#status_required: row.field(39usize + offset)?.into_bool()?, + r#item_required: row.field(40usize + offset)?.into_i32()?, + r#is_specialization_required: row.field(41usize + offset)?.into_i32()?, + r#is_expert: row.field(42usize + offset)?.into_bool()?, + r#unknown43: row.field(43usize + offset)?.into_bool()?, + r#unknown44: row.field(44usize + offset)?.into_u8()?, + r#patch_number: row.field(45usize + offset)?.into_u16()?, + r#unknown46: row.field(46usize + offset)?.into_u16()?, }) } } diff --git a/src/sheet/recipe_level_table.rs b/src/sheet/recipe_level_table.rs index e3d6f1a4..30b9e841 100644 --- a/src/sheet/recipe_level_table.rs +++ b/src/sheet/recipe_level_table.rs @@ -1,6 +1,6 @@ -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use std::result::Result; impl MetadataAdapter for RecipeLevelTable { fn name() -> String { @@ -16,7 +16,6 @@ pub struct RecipeLevelTable { pub r#class_job_level: u8, pub r#stars: u8, pub r#suggested_craftsmanship: u16, - pub r#suggested_control: u16, pub r#difficulty: u16, pub r#quality: u32, pub r#progress_divider: u8, @@ -32,15 +31,14 @@ impl RecipeLevelTable { r#class_job_level: row.field(0usize + offset)?.into_u8()?, r#stars: row.field(1usize + offset)?.into_u8()?, r#suggested_craftsmanship: row.field(2usize + offset)?.into_u16()?, - r#suggested_control: row.field(3usize + offset)?.into_u16()?, - r#difficulty: row.field(4usize + offset)?.into_u16()?, - r#quality: row.field(5usize + offset)?.into_u32()?, - r#progress_divider: row.field(6usize + offset)?.into_u8()?, - r#quality_divider: row.field(7usize + offset)?.into_u8()?, - r#progress_modifier: row.field(8usize + offset)?.into_u8()?, - r#quality_modifier: row.field(9usize + offset)?.into_u8()?, - r#durability: row.field(10usize + offset)?.into_u16()?, - r#conditions_flag: row.field(11usize + offset)?.into_u16()?, + r#difficulty: row.field(3usize + offset)?.into_u16()?, + r#quality: row.field(4usize + offset)?.into_u32()?, + r#progress_divider: row.field(5usize + offset)?.into_u8()?, + r#quality_divider: row.field(6usize + offset)?.into_u8()?, + r#progress_modifier: row.field(7usize + offset)?.into_u8()?, + r#quality_modifier: row.field(8usize + offset)?.into_u8()?, + r#durability: row.field(9usize + offset)?.into_u16()?, + r#conditions_flag: row.field(10usize + offset)?.into_u16()?, }) } } diff --git a/src/sheet/recipe_lookup.rs b/src/sheet/recipe_lookup.rs index 96d3c6bd..48bba5c6 100644 --- a/src/sheet/recipe_lookup.rs +++ b/src/sheet/recipe_lookup.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; use crate::error::PopulateError; -use std::result::Result; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for RecipeLookup { fn name() -> String { "RecipeLookup".to_string() diff --git a/src/sheet/recipe_notebook_list.rs b/src/sheet/recipe_notebook_list.rs index 77aa0a0e..48df3656 100644 --- a/src/sheet/recipe_notebook_list.rs +++ b/src/sheet/recipe_notebook_list.rs @@ -1,9 +1,9 @@ -use ironworks::excel::Row; +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use crate::utility::read_array; +use ironworks::excel::Row; use std::result::Result; use std::vec::Vec; -use crate::metadata::MetadataAdapter; -use crate::error::PopulateError; impl MetadataAdapter for RecipeNotebookList { fn name() -> String { "RecipeNotebookList".to_string() diff --git a/src/sheet/recommend_contents.rs b/src/sheet/recommend_contents.rs index 439c8152..fa9edacd 100644 --- a/src/sheet/recommend_contents.rs +++ b/src/sheet/recommend_contents.rs @@ -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 RecommendContents { fn name() -> String { "RecommendContents".to_string() diff --git a/src/sheet/relic.rs b/src/sheet/relic.rs index 302be8e1..1369eeb3 100644 --- a/src/sheet/relic.rs +++ b/src/sheet/relic.rs @@ -1,7 +1,7 @@ -use std::result::Result; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for Relic { fn name() -> String { "Relic".to_string() diff --git a/src/sheet/relic3.rs b/src/sheet/relic3.rs index baa98135..6d5338f8 100644 --- a/src/sheet/relic3.rs +++ b/src/sheet/relic3.rs @@ -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 Relic3 { fn name() -> String { "Relic3".to_string() @@ -18,6 +18,7 @@ pub struct Relic3 { pub r#materia_limit: u8, pub r#item_novus: u32, pub r#icon: i32, + pub r#unknown5: i8, } impl Relic3 { pub fn populate(row: &Row, offset: usize) -> Result { @@ -27,6 +28,7 @@ impl Relic3 { r#materia_limit: row.field(2usize + offset)?.into_u8()?, r#item_novus: row.field(3usize + offset)?.into_u32()?, r#icon: row.field(4usize + offset)?.into_i32()?, + r#unknown5: row.field(5usize + offset)?.into_i8()?, }) } } diff --git a/src/sheet/relic_item.rs b/src/sheet/relic_item.rs index bab6632e..5ff94bca 100644 --- a/src/sheet/relic_item.rs +++ b/src/sheet/relic_item.rs @@ -1,7 +1,7 @@ use crate::error::PopulateError; -use std::result::Result; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for RelicItem { fn name() -> String { "RelicItem".to_string() @@ -25,6 +25,11 @@ pub struct RelicItem { pub r#arcanist_sch_item: u32, pub r#shield_item: u32, pub r#rogue_item: u32, + pub r#unknown12: u32, + pub r#unknown13: u32, + pub r#unknown14: u32, + pub r#unknown15: u32, + pub r#unknown16: u32, } impl RelicItem { pub fn populate(row: &Row, offset: usize) -> Result { @@ -41,6 +46,11 @@ impl RelicItem { r#arcanist_sch_item: row.field(9usize + offset)?.into_u32()?, r#shield_item: row.field(10usize + offset)?.into_u32()?, r#rogue_item: row.field(11usize + offset)?.into_u32()?, + r#unknown12: row.field(12usize + offset)?.into_u32()?, + r#unknown13: row.field(13usize + offset)?.into_u32()?, + r#unknown14: row.field(14usize + offset)?.into_u32()?, + r#unknown15: row.field(15usize + offset)?.into_u32()?, + r#unknown16: row.field(16usize + offset)?.into_u32()?, }) } } diff --git a/src/sheet/relic_note.rs b/src/sheet/relic_note.rs index 34425140..e7a177c1 100644 --- a/src/sheet/relic_note.rs +++ b/src/sheet/relic_note.rs @@ -1,9 +1,9 @@ -use ironworks::excel::Row; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::vec::Vec; use crate::utility::read_array; +use ironworks::excel::Row; use std::result::Result; -use crate::error::PopulateError; +use std::vec::Vec; impl MetadataAdapter for RelicNote { fn name() -> String { "RelicNote".to_string() diff --git a/src/sheet/relic_note_category.rs b/src/sheet/relic_note_category.rs index 82980c98..aa3fbb4d 100644 --- a/src/sheet/relic_note_category.rs +++ b/src/sheet/relic_note_category.rs @@ -1,8 +1,8 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use ironworks::sestring::SeString; use ironworks::excel::Row; +use ironworks::sestring::SeString; use std::result::Result; -use crate::error::PopulateError; impl MetadataAdapter for RelicNoteCategory { fn name() -> String { "RelicNoteCategory".to_string() diff --git a/src/sheet/replace_action.rs b/src/sheet/replace_action.rs new file mode 100644 index 00000000..3d4f6c4c --- /dev/null +++ b/src/sheet/replace_action.rs @@ -0,0 +1,52 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; +impl MetadataAdapter for ReplaceAction { + fn name() -> String { + "ReplaceAction".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(ReplaceAction::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct ReplaceAction { + pub r#action: i32, + pub r#type1: i8, + pub r#param1: i16, + pub r#replace_action1: i32, + pub r#type2: i8, + pub r#param2: i16, + pub r#replace_action2: i32, + pub r#type3: i8, + pub r#param3: i16, + pub r#replace_action3: i32, + pub r#replace_settable: i8, + pub r#unknown11: i16, + pub r#unknown12: i32, + pub r#unknown13: i8, + pub r#unknown14: bool, +} +impl ReplaceAction { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#action: row.field(0usize + offset)?.into_i32()?, + r#type1: row.field(1usize + offset)?.into_i8()?, + r#param1: row.field(2usize + offset)?.into_i16()?, + r#replace_action1: row.field(3usize + offset)?.into_i32()?, + r#type2: row.field(4usize + offset)?.into_i8()?, + r#param2: row.field(5usize + offset)?.into_i16()?, + r#replace_action2: row.field(6usize + offset)?.into_i32()?, + r#type3: row.field(7usize + offset)?.into_i8()?, + r#param3: row.field(8usize + offset)?.into_i16()?, + r#replace_action3: row.field(9usize + offset)?.into_i32()?, + r#replace_settable: row.field(10usize + offset)?.into_i8()?, + r#unknown11: row.field(11usize + offset)?.into_i16()?, + r#unknown12: row.field(12usize + offset)?.into_i32()?, + r#unknown13: row.field(13usize + offset)?.into_i8()?, + r#unknown14: row.field(14usize + offset)?.into_bool()?, + }) + } +} diff --git a/src/sheet/resident.rs b/src/sheet/resident.rs index e995a538..d6e7265e 100644 --- a/src/sheet/resident.rs +++ b/src/sheet/resident.rs @@ -1,7 +1,7 @@ -use std::result::Result; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for Resident { fn name() -> String { "Resident".to_string() diff --git a/src/sheet/resistance_weapon_adjust.rs b/src/sheet/resistance_weapon_adjust.rs index a84010c1..e545cda7 100644 --- a/src/sheet/resistance_weapon_adjust.rs +++ b/src/sheet/resistance_weapon_adjust.rs @@ -1,9 +1,9 @@ -use ironworks::excel::Row; -use crate::utility::read_array; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use crate::utility::read_array; +use ironworks::excel::Row; use std::result::Result; use std::vec::Vec; -use crate::error::PopulateError; impl MetadataAdapter for ResistanceWeaponAdjust { fn name() -> String { "ResistanceWeaponAdjust".to_string() @@ -19,6 +19,7 @@ pub struct ResistanceWeaponAdjust { pub r#max_each_stat: u16, pub r#base_param: Vec, pub r#image: u32, + pub r#unknown7: u8, } impl ResistanceWeaponAdjust { pub fn populate(row: &Row, offset: usize) -> Result { @@ -32,6 +33,7 @@ impl ResistanceWeaponAdjust { |offset| { Result::Ok(row.field(2usize + offset)?.into_u8()?) }, )?, r#image: row.field(6usize + offset)?.into_u32()?, + r#unknown7: row.field(7usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/retainer_fortune_reward_range.rs b/src/sheet/retainer_fortune_reward_range.rs index 4d8a7d39..b61efc35 100644 --- a/src/sheet/retainer_fortune_reward_range.rs +++ b/src/sheet/retainer_fortune_reward_range.rs @@ -1,6 +1,6 @@ -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use std::result::Result; impl MetadataAdapter for RetainerFortuneRewardRange { fn name() -> String { diff --git a/src/sheet/retainer_task.rs b/src/sheet/retainer_task.rs index 6fb543c0..8e3620a6 100644 --- a/src/sheet/retainer_task.rs +++ b/src/sheet/retainer_task.rs @@ -1,7 +1,7 @@ -use std::result::Result; -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for RetainerTask { fn name() -> String { "RetainerTask".to_string() diff --git a/src/sheet/retainer_task_lv_range.rs b/src/sheet/retainer_task_lv_range.rs index f37ff469..b1b45cf8 100644 --- a/src/sheet/retainer_task_lv_range.rs +++ b/src/sheet/retainer_task_lv_range.rs @@ -1,7 +1,7 @@ use crate::error::PopulateError; -use std::result::Result; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for RetainerTaskLvRange { fn name() -> String { "RetainerTaskLvRange".to_string() diff --git a/src/sheet/retainer_task_normal.rs b/src/sheet/retainer_task_normal.rs index e3007abb..d6cd5b0f 100644 --- a/src/sheet/retainer_task_normal.rs +++ b/src/sheet/retainer_task_normal.rs @@ -1,7 +1,9 @@ -use std::result::Result; use crate::error::PopulateError; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; +use crate::utility::read_array; +use ironworks::excel::Row; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for RetainerTaskNormal { fn name() -> String { "RetainerTaskNormal".to_string() @@ -14,11 +16,7 @@ impl MetadataAdapter for RetainerTaskNormal { #[derive(Debug)] pub struct RetainerTaskNormal { pub r#item: i32, - pub r#quantity0: u8, - pub r#quantity1: u8, - pub r#quantity2: u8, - pub r#quantity3: u8, - pub r#quantity4: u8, + pub r#quantity: Vec, pub r#gathering_log: i16, pub r#fishing_log: i16, } @@ -26,11 +24,12 @@ impl RetainerTaskNormal { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#item: row.field(0usize + offset)?.into_i32()?, - r#quantity0: row.field(1usize + offset)?.into_u8()?, - r#quantity1: row.field(2usize + offset)?.into_u8()?, - r#quantity2: row.field(3usize + offset)?.into_u8()?, - r#quantity3: row.field(4usize + offset)?.into_u8()?, - r#quantity4: row.field(5usize + offset)?.into_u8()?, + r#quantity: read_array( + offset, + 5usize, + 1usize, + |offset| { Result::Ok(row.field(1usize + offset)?.into_u8()?) }, + )?, r#gathering_log: row.field(6usize + offset)?.into_i16()?, r#fishing_log: row.field(7usize + offset)?.into_i16()?, }) diff --git a/src/sheet/retainer_task_parameter.rs b/src/sheet/retainer_task_parameter.rs index cdc0890b..ddcb3fe2 100644 --- a/src/sheet/retainer_task_parameter.rs +++ b/src/sheet/retainer_task_parameter.rs @@ -1,9 +1,9 @@ -use ironworks::excel::Row; -use std::vec::Vec; use crate::error::PopulateError; -use std::result::Result; use crate::metadata::MetadataAdapter; use crate::utility::read_array; +use ironworks::excel::Row; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for RetainerTaskParameter { fn name() -> String { "RetainerTaskParameter".to_string() diff --git a/src/sheet/retainer_task_random.rs b/src/sheet/retainer_task_random.rs index 1e299aef..2acf79f7 100644 --- a/src/sheet/retainer_task_random.rs +++ b/src/sheet/retainer_task_random.rs @@ -1,5 +1,5 @@ -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; use ironworks::sestring::SeString; use std::result::Result; diff --git a/src/sheet/ride_shooting.rs b/src/sheet/ride_shooting.rs index f2df6a89..3ccb4fcf 100644 --- a/src/sheet/ride_shooting.rs +++ b/src/sheet/ride_shooting.rs @@ -1,9 +1,9 @@ -use std::vec::Vec; -use crate::utility::read_array; use crate::error::PopulateError; -use std::result::Result; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; +use crate::utility::read_array; +use ironworks::excel::Row; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for RideShooting { fn name() -> String { "RideShooting".to_string() @@ -32,6 +32,86 @@ pub struct RideShooting { pub r#pop_range: Vec, pub r#e_npc: Vec, pub r#e_npc_scale: Vec, + pub r#unknown38: u32, + pub r#unknown39: u32, + pub r#unknown40: u32, + pub r#unknown41: u32, + pub r#unknown42: u32, + pub r#unknown43: u32, + pub r#unknown44: u32, + pub r#unknown45: u32, + pub r#unknown46: u8, + pub r#unknown47: u8, + pub r#unknown48: u8, + pub r#unknown49: u8, + pub r#unknown50: u8, + pub r#unknown51: u8, + pub r#unknown52: u8, + pub r#unknown53: u8, + pub r#unknown54: u32, + pub r#unknown55: u32, + pub r#unknown56: u32, + pub r#unknown57: u32, + pub r#unknown58: u32, + pub r#unknown59: u32, + pub r#unknown60: u32, + pub r#unknown61: u32, + pub r#unknown62: u8, + pub r#unknown63: u8, + pub r#unknown64: u8, + pub r#unknown65: u8, + pub r#unknown66: u8, + pub r#unknown67: u8, + pub r#unknown68: u8, + pub r#unknown69: u8, + pub r#unknown70: u32, + pub r#unknown71: u32, + pub r#unknown72: u32, + pub r#unknown73: u32, + pub r#unknown74: u32, + pub r#unknown75: u32, + pub r#unknown76: u32, + pub r#unknown77: u32, + pub r#unknown78: u8, + pub r#unknown79: u8, + pub r#unknown80: u8, + pub r#unknown81: u8, + pub r#unknown82: u8, + pub r#unknown83: u8, + pub r#unknown84: u8, + pub r#unknown85: u8, + pub r#unknown86: u32, + pub r#unknown87: u32, + pub r#unknown88: u32, + pub r#unknown89: u32, + pub r#unknown90: u32, + pub r#unknown91: u32, + pub r#unknown92: u32, + pub r#unknown93: u32, + pub r#unknown94: u8, + pub r#unknown95: u8, + pub r#unknown96: u8, + pub r#unknown97: u8, + pub r#unknown98: u8, + pub r#unknown99: u8, + pub r#unknown100: u8, + pub r#unknown101: u8, + pub r#unknown102: u32, + pub r#unknown103: u32, + pub r#unknown104: u32, + pub r#unknown105: u32, + pub r#unknown106: u32, + pub r#unknown107: u32, + pub r#unknown108: u32, + pub r#unknown109: u32, + pub r#unknown110: u8, + pub r#unknown111: u8, + pub r#unknown112: u8, + pub r#unknown113: u8, + pub r#unknown114: u8, + pub r#unknown115: u8, + pub r#unknown116: u8, + pub r#unknown117: u8, } impl RideShooting { pub fn populate(row: &Row, offset: usize) -> Result { @@ -68,6 +148,86 @@ impl RideShooting { 1usize, |offset| { Result::Ok(row.field(30usize + offset)?.into_u8()?) }, )?, + r#unknown38: row.field(38usize + offset)?.into_u32()?, + r#unknown39: row.field(39usize + offset)?.into_u32()?, + r#unknown40: row.field(40usize + offset)?.into_u32()?, + r#unknown41: row.field(41usize + offset)?.into_u32()?, + r#unknown42: row.field(42usize + offset)?.into_u32()?, + r#unknown43: row.field(43usize + offset)?.into_u32()?, + r#unknown44: row.field(44usize + offset)?.into_u32()?, + r#unknown45: row.field(45usize + offset)?.into_u32()?, + r#unknown46: row.field(46usize + offset)?.into_u8()?, + r#unknown47: row.field(47usize + offset)?.into_u8()?, + r#unknown48: row.field(48usize + offset)?.into_u8()?, + r#unknown49: row.field(49usize + offset)?.into_u8()?, + r#unknown50: row.field(50usize + offset)?.into_u8()?, + r#unknown51: row.field(51usize + offset)?.into_u8()?, + r#unknown52: row.field(52usize + offset)?.into_u8()?, + r#unknown53: row.field(53usize + offset)?.into_u8()?, + r#unknown54: row.field(54usize + offset)?.into_u32()?, + r#unknown55: row.field(55usize + offset)?.into_u32()?, + r#unknown56: row.field(56usize + offset)?.into_u32()?, + r#unknown57: row.field(57usize + offset)?.into_u32()?, + r#unknown58: row.field(58usize + offset)?.into_u32()?, + r#unknown59: row.field(59usize + offset)?.into_u32()?, + r#unknown60: row.field(60usize + offset)?.into_u32()?, + r#unknown61: row.field(61usize + offset)?.into_u32()?, + r#unknown62: row.field(62usize + offset)?.into_u8()?, + r#unknown63: row.field(63usize + offset)?.into_u8()?, + r#unknown64: row.field(64usize + offset)?.into_u8()?, + r#unknown65: row.field(65usize + offset)?.into_u8()?, + r#unknown66: row.field(66usize + offset)?.into_u8()?, + r#unknown67: row.field(67usize + offset)?.into_u8()?, + r#unknown68: row.field(68usize + offset)?.into_u8()?, + r#unknown69: row.field(69usize + offset)?.into_u8()?, + r#unknown70: row.field(70usize + offset)?.into_u32()?, + r#unknown71: row.field(71usize + offset)?.into_u32()?, + r#unknown72: row.field(72usize + offset)?.into_u32()?, + r#unknown73: row.field(73usize + offset)?.into_u32()?, + r#unknown74: row.field(74usize + offset)?.into_u32()?, + r#unknown75: row.field(75usize + offset)?.into_u32()?, + r#unknown76: row.field(76usize + offset)?.into_u32()?, + r#unknown77: row.field(77usize + offset)?.into_u32()?, + r#unknown78: row.field(78usize + offset)?.into_u8()?, + r#unknown79: row.field(79usize + offset)?.into_u8()?, + r#unknown80: row.field(80usize + offset)?.into_u8()?, + r#unknown81: row.field(81usize + offset)?.into_u8()?, + r#unknown82: row.field(82usize + offset)?.into_u8()?, + r#unknown83: row.field(83usize + offset)?.into_u8()?, + r#unknown84: row.field(84usize + offset)?.into_u8()?, + r#unknown85: row.field(85usize + offset)?.into_u8()?, + r#unknown86: row.field(86usize + offset)?.into_u32()?, + r#unknown87: row.field(87usize + offset)?.into_u32()?, + r#unknown88: row.field(88usize + offset)?.into_u32()?, + r#unknown89: row.field(89usize + offset)?.into_u32()?, + r#unknown90: row.field(90usize + offset)?.into_u32()?, + r#unknown91: row.field(91usize + offset)?.into_u32()?, + r#unknown92: row.field(92usize + offset)?.into_u32()?, + r#unknown93: row.field(93usize + offset)?.into_u32()?, + r#unknown94: row.field(94usize + offset)?.into_u8()?, + r#unknown95: row.field(95usize + offset)?.into_u8()?, + r#unknown96: row.field(96usize + offset)?.into_u8()?, + r#unknown97: row.field(97usize + offset)?.into_u8()?, + r#unknown98: row.field(98usize + offset)?.into_u8()?, + r#unknown99: row.field(99usize + offset)?.into_u8()?, + r#unknown100: row.field(100usize + offset)?.into_u8()?, + r#unknown101: row.field(101usize + offset)?.into_u8()?, + r#unknown102: row.field(102usize + offset)?.into_u32()?, + r#unknown103: row.field(103usize + offset)?.into_u32()?, + r#unknown104: row.field(104usize + offset)?.into_u32()?, + r#unknown105: row.field(105usize + offset)?.into_u32()?, + r#unknown106: row.field(106usize + offset)?.into_u32()?, + r#unknown107: row.field(107usize + offset)?.into_u32()?, + r#unknown108: row.field(108usize + offset)?.into_u32()?, + r#unknown109: row.field(109usize + offset)?.into_u32()?, + r#unknown110: row.field(110usize + offset)?.into_u8()?, + r#unknown111: row.field(111usize + offset)?.into_u8()?, + r#unknown112: row.field(112usize + offset)?.into_u8()?, + r#unknown113: row.field(113usize + offset)?.into_u8()?, + r#unknown114: row.field(114usize + offset)?.into_u8()?, + r#unknown115: row.field(115usize + offset)?.into_u8()?, + r#unknown116: row.field(116usize + offset)?.into_u8()?, + r#unknown117: row.field(117usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/ride_shooting_target_type.rs b/src/sheet/ride_shooting_target_type.rs index 7056a655..0c470a38 100644 --- a/src/sheet/ride_shooting_target_type.rs +++ b/src/sheet/ride_shooting_target_type.rs @@ -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 RideShootingTargetType { fn name() -> String { "RideShootingTargetType".to_string() @@ -15,12 +15,20 @@ impl MetadataAdapter for RideShootingTargetType { pub struct RideShootingTargetType { pub r#e_obj: u32, pub r#score: i16, + pub r#unknown2: i16, + pub r#unknown3: i16, + pub r#unknown4: i16, + pub r#unknown5: i16, } impl RideShootingTargetType { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#e_obj: row.field(0usize + offset)?.into_u32()?, r#score: row.field(1usize + offset)?.into_i16()?, + r#unknown2: row.field(2usize + offset)?.into_i16()?, + r#unknown3: row.field(3usize + offset)?.into_i16()?, + r#unknown4: row.field(4usize + offset)?.into_i16()?, + r#unknown5: row.field(5usize + offset)?.into_i16()?, }) } } diff --git a/src/sheet/ride_shooting_text_data.rs b/src/sheet/ride_shooting_text_data.rs index 7a2ab5db..15c3f4ef 100644 --- a/src/sheet/ride_shooting_text_data.rs +++ b/src/sheet/ride_shooting_text_data.rs @@ -1,5 +1,5 @@ -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; use ironworks::sestring::SeString; use std::result::Result; diff --git a/src/sheet/rp_parameter.rs b/src/sheet/rp_parameter.rs index 67478336..945ab5c8 100644 --- a/src/sheet/rp_parameter.rs +++ b/src/sheet/rp_parameter.rs @@ -1,7 +1,7 @@ -use std::result::Result; -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for RPParameter { fn name() -> String { "RPParameter".to_string() @@ -15,12 +15,14 @@ impl MetadataAdapter for RPParameter { pub struct RPParameter { pub r#b_npc_name: u16, pub r#class_job: u8, + pub r#unknown2: u8, } impl RPParameter { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#b_npc_name: row.field(0usize + offset)?.into_u16()?, r#class_job: row.field(1usize + offset)?.into_u8()?, + r#unknown2: row.field(2usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/satisfaction_arbitration.rs b/src/sheet/satisfaction_arbitration.rs index 689959c5..229774b2 100644 --- a/src/sheet/satisfaction_arbitration.rs +++ b/src/sheet/satisfaction_arbitration.rs @@ -1,6 +1,6 @@ use crate::error::PopulateError; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use std::result::Result; impl MetadataAdapter for SatisfactionArbitration { fn name() -> String { @@ -16,6 +16,7 @@ pub struct SatisfactionArbitration { pub r#satisfaction_level: u8, pub r#satisfaction_npc: u8, pub r#quest: u32, + pub r#unknown3: u8, } impl SatisfactionArbitration { pub fn populate(row: &Row, offset: usize) -> Result { @@ -23,6 +24,7 @@ impl SatisfactionArbitration { r#satisfaction_level: row.field(0usize + offset)?.into_u8()?, r#satisfaction_npc: row.field(1usize + offset)?.into_u8()?, r#quest: row.field(2usize + offset)?.into_u32()?, + r#unknown3: row.field(3usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/satisfaction_bonus_guarantee.rs b/src/sheet/satisfaction_bonus_guarantee.rs new file mode 100644 index 00000000..c1414ca7 --- /dev/null +++ b/src/sheet/satisfaction_bonus_guarantee.rs @@ -0,0 +1,34 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; +impl MetadataAdapter for SatisfactionBonusGuarantee { + fn name() -> String { + "SatisfactionBonusGuarantee".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(SatisfactionBonusGuarantee::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct SatisfactionBonusGuarantee { + pub r#unknown0: u8, + pub r#unknown1: u8, + pub r#unknown2: u8, + pub r#unknown3: u8, + pub r#unknown4: u8, + pub r#unknown5: u8, +} +impl SatisfactionBonusGuarantee { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u8()?, + r#unknown1: row.field(1usize + offset)?.into_u8()?, + r#unknown2: row.field(2usize + offset)?.into_u8()?, + r#unknown3: row.field(3usize + offset)?.into_u8()?, + r#unknown4: row.field(4usize + offset)?.into_u8()?, + r#unknown5: row.field(5usize + offset)?.into_u8()?, + }) + } +} diff --git a/src/sheet/satisfaction_npc.rs b/src/sheet/satisfaction_npc.rs index e590e710..8809e974 100644 --- a/src/sheet/satisfaction_npc.rs +++ b/src/sheet/satisfaction_npc.rs @@ -1,9 +1,9 @@ -use std::vec::Vec; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use crate::utility::read_array; use ironworks::excel::Row; -use crate::metadata::MetadataAdapter; use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for SatisfactionNpc { fn name() -> String { "SatisfactionNpc".to_string() @@ -52,7 +52,29 @@ pub struct SatisfactionNpc { pub r#supply_index: Vec, pub r#satisfaction_required: Vec, pub r#i: Vec, - pub r#icon: i32, + pub r#unknown70: i32, + pub r#unknown71: i32, + pub r#unknown72: i32, + pub r#unknown73: i32, + pub r#unknown74: i32, + pub r#unknown75: i32, + pub r#unknown76: i32, + pub r#unknown77: i32, + pub r#unknown78: i32, + pub r#unknown79: i32, + pub r#unknown80: i32, + pub r#unknown81: i32, + pub r#unknown82: i32, + pub r#unknown83: i32, + pub r#unknown84: i32, + pub r#unknown85: i32, + pub r#unknown86: i32, + pub r#unknown87: i32, + pub r#icon: u32, + pub r#unknown89: i32, + pub r#unknown90: u8, + pub r#unknown91: u8, + pub r#unknown92: u8, } impl SatisfactionNpc { pub fn populate(row: &Row, offset: usize) -> Result { @@ -79,7 +101,29 @@ impl SatisfactionNpc { 18usize, |offset| { Result::Ok(SatisfactionNpc_I::populate(row, offset)?) }, )?, - r#icon: row.field(70usize + offset)?.into_i32()?, + r#unknown70: row.field(70usize + offset)?.into_i32()?, + r#unknown71: row.field(71usize + offset)?.into_i32()?, + r#unknown72: row.field(72usize + offset)?.into_i32()?, + r#unknown73: row.field(73usize + offset)?.into_i32()?, + r#unknown74: row.field(74usize + offset)?.into_i32()?, + r#unknown75: row.field(75usize + offset)?.into_i32()?, + r#unknown76: row.field(76usize + offset)?.into_i32()?, + r#unknown77: row.field(77usize + offset)?.into_i32()?, + r#unknown78: row.field(78usize + offset)?.into_i32()?, + r#unknown79: row.field(79usize + offset)?.into_i32()?, + r#unknown80: row.field(80usize + offset)?.into_i32()?, + r#unknown81: row.field(81usize + offset)?.into_i32()?, + r#unknown82: row.field(82usize + offset)?.into_i32()?, + r#unknown83: row.field(83usize + offset)?.into_i32()?, + r#unknown84: row.field(84usize + offset)?.into_i32()?, + r#unknown85: row.field(85usize + offset)?.into_i32()?, + r#unknown86: row.field(86usize + offset)?.into_i32()?, + r#unknown87: row.field(87usize + offset)?.into_i32()?, + r#icon: row.field(88usize + offset)?.into_u32()?, + r#unknown89: row.field(89usize + offset)?.into_i32()?, + r#unknown90: row.field(90usize + offset)?.into_u8()?, + r#unknown91: row.field(91usize + offset)?.into_u8()?, + r#unknown92: row.field(92usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/satisfaction_supply.rs b/src/sheet/satisfaction_supply.rs index ca538c73..a074d743 100644 --- a/src/sheet/satisfaction_supply.rs +++ b/src/sheet/satisfaction_supply.rs @@ -1,7 +1,7 @@ -use std::result::Result; -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for SatisfactionSupply { fn name() -> String { "SatisfactionSupply".to_string() @@ -20,6 +20,9 @@ pub struct SatisfactionSupply { pub r#collectability_mid: u16, pub r#collectability_high: u16, pub r#reward: u16, + pub r#unknown7: bool, + pub r#unknown8: u16, + pub r#unknown9: u16, } impl SatisfactionSupply { pub fn populate(row: &Row, offset: usize) -> Result { @@ -31,6 +34,9 @@ impl SatisfactionSupply { r#collectability_mid: row.field(4usize + offset)?.into_u16()?, r#collectability_high: row.field(5usize + offset)?.into_u16()?, r#reward: row.field(6usize + offset)?.into_u16()?, + r#unknown7: row.field(7usize + offset)?.into_bool()?, + r#unknown8: row.field(8usize + offset)?.into_u16()?, + r#unknown9: row.field(9usize + offset)?.into_u16()?, }) } } diff --git a/src/sheet/satisfaction_supply_reward.rs b/src/sheet/satisfaction_supply_reward.rs index 34664ec5..2db98141 100644 --- a/src/sheet/satisfaction_supply_reward.rs +++ b/src/sheet/satisfaction_supply_reward.rs @@ -1,9 +1,9 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use crate::utility::read_array; use ironworks::excel::Row; use std::result::Result; -use crate::error::PopulateError; use std::vec::Vec; -use crate::utility::read_array; impl MetadataAdapter for SatisfactionSupplyReward { fn name() -> String { "SatisfactionSupplyReward".to_string() diff --git a/src/sheet/scenario_tree.rs b/src/sheet/scenario_tree.rs index 674bdf24..82d7829b 100644 --- a/src/sheet/scenario_tree.rs +++ b/src/sheet/scenario_tree.rs @@ -1,8 +1,8 @@ -use std::result::Result; -use ironworks::sestring::SeString; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; -use crate::error::PopulateError; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for ScenarioTree { fn name() -> String { "ScenarioTree".to_string() @@ -19,6 +19,8 @@ pub struct ScenarioTree { pub r#addon: u32, pub r#quest_chapter: u32, pub r#name: SeString, + pub r#unknown5: i32, + pub r#unknown6: u32, } impl ScenarioTree { pub fn populate(row: &Row, offset: usize) -> Result { @@ -28,6 +30,8 @@ impl ScenarioTree { r#addon: row.field(2usize + offset)?.into_u32()?, r#quest_chapter: row.field(3usize + offset)?.into_u32()?, r#name: row.field(4usize + offset)?.into_string()?, + r#unknown5: row.field(5usize + offset)?.into_i32()?, + r#unknown6: row.field(6usize + offset)?.into_u32()?, }) } } diff --git a/src/sheet/scenario_tree_tips.rs b/src/sheet/scenario_tree_tips.rs index cf55492b..dda39449 100644 --- a/src/sheet/scenario_tree_tips.rs +++ b/src/sheet/scenario_tree_tips.rs @@ -1,6 +1,6 @@ use crate::error::PopulateError; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use std::result::Result; impl MetadataAdapter for ScenarioTreeTips { fn name() -> String { diff --git a/src/sheet/scenario_tree_tips_class_quest.rs b/src/sheet/scenario_tree_tips_class_quest.rs index 979f7004..8d0b5787 100644 --- a/src/sheet/scenario_tree_tips_class_quest.rs +++ b/src/sheet/scenario_tree_tips_class_quest.rs @@ -1,7 +1,7 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; use ironworks::excel::Row; -use crate::error::PopulateError; +use std::result::Result; impl MetadataAdapter for ScenarioTreeTipsClassQuest { fn name() -> String { "ScenarioTreeTipsClassQuest".to_string() @@ -17,6 +17,8 @@ pub struct ScenarioTreeTipsClassQuest { pub r#required_level: u16, pub r#required_expansion: u8, pub r#required_quest: u32, + pub r#unknown4: bool, + pub r#unknown5: bool, } impl ScenarioTreeTipsClassQuest { pub fn populate(row: &Row, offset: usize) -> Result { @@ -25,6 +27,8 @@ impl ScenarioTreeTipsClassQuest { r#required_level: row.field(1usize + offset)?.into_u16()?, r#required_expansion: row.field(2usize + offset)?.into_u8()?, r#required_quest: row.field(3usize + offset)?.into_u32()?, + r#unknown4: row.field(4usize + offset)?.into_bool()?, + r#unknown5: row.field(5usize + offset)?.into_bool()?, }) } } diff --git a/src/sheet/scenario_type.rs b/src/sheet/scenario_type.rs index c14eb125..4cf7e7a5 100644 --- a/src/sheet/scenario_type.rs +++ b/src/sheet/scenario_type.rs @@ -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 ScenarioType { fn name() -> String { "ScenarioType".to_string() @@ -15,11 +15,13 @@ impl MetadataAdapter for ScenarioType { #[derive(Debug)] pub struct ScenarioType { pub r#type: SeString, + pub r#unknown1: i8, } impl ScenarioType { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#type: row.field(0usize + offset)?.into_string()?, + r#unknown1: row.field(1usize + offset)?.into_i8()?, }) } } diff --git a/src/sheet/screen_image.rs b/src/sheet/screen_image.rs index 2cd5a2f2..5ae24338 100644 --- a/src/sheet/screen_image.rs +++ b/src/sheet/screen_image.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; use crate::error::PopulateError; -use std::result::Result; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for ScreenImage { fn name() -> String { "ScreenImage".to_string() diff --git a/src/sheet/secret_recipe_book.rs b/src/sheet/secret_recipe_book.rs index f5b25c84..381bf4f2 100644 --- a/src/sheet/secret_recipe_book.rs +++ b/src/sheet/secret_recipe_book.rs @@ -1,8 +1,8 @@ -use std::result::Result; -use ironworks::sestring::SeString; -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for SecretRecipeBook { fn name() -> String { "SecretRecipeBook".to_string() diff --git a/src/sheet/sharlayan_craft_works.rs b/src/sheet/sharlayan_craft_works.rs index 1d489266..bde9a0b2 100644 --- a/src/sheet/sharlayan_craft_works.rs +++ b/src/sheet/sharlayan_craft_works.rs @@ -1,7 +1,8 @@ use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for SharlayanCraftWorks { fn name() -> String { "SharlayanCraftWorks".to_string() @@ -12,9 +13,17 @@ impl MetadataAdapter for SharlayanCraftWorks { } } #[derive(Debug)] -pub struct SharlayanCraftWorks {} +pub struct SharlayanCraftWorks { + pub r#unknown0: u32, + pub r#unknown1: u16, + pub r#unknown2: SeString, +} impl SharlayanCraftWorks { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u32()?, + r#unknown1: row.field(1usize + offset)?.into_u16()?, + r#unknown2: row.field(2usize + offset)?.into_string()?, + }) } } diff --git a/src/sheet/sharlayan_craft_works_supply.rs b/src/sheet/sharlayan_craft_works_supply.rs index 77f21ba3..38253703 100644 --- a/src/sheet/sharlayan_craft_works_supply.rs +++ b/src/sheet/sharlayan_craft_works_supply.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; -use std::result::Result; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for SharlayanCraftWorksSupply { fn name() -> String { "SharlayanCraftWorksSupply".to_string() @@ -12,9 +12,99 @@ impl MetadataAdapter for SharlayanCraftWorksSupply { } } #[derive(Debug)] -pub struct SharlayanCraftWorksSupply {} +pub struct SharlayanCraftWorksSupply { + pub r#unknown0: u8, + pub r#unknown1: u8, + pub r#unknown2: u8, + pub r#unknown3: u8, + pub r#unknown4: u32, + pub r#unknown5: u32, + pub r#unknown6: u32, + pub r#unknown7: u32, + pub r#unknown8: u16, + pub r#unknown9: u16, + pub r#unknown10: u16, + pub r#unknown11: u16, + pub r#unknown12: u16, + pub r#unknown13: u16, + pub r#unknown14: u16, + pub r#unknown15: u16, + pub r#unknown16: u32, + pub r#unknown17: u32, + pub r#unknown18: u32, + pub r#unknown19: u32, + pub r#unknown20: u8, + pub r#unknown21: u8, + pub r#unknown22: u8, + pub r#unknown23: u8, + pub r#unknown24: u16, + pub r#unknown25: u16, + pub r#unknown26: u16, + pub r#unknown27: u16, + pub r#unknown28: u8, + pub r#unknown29: u8, + pub r#unknown30: u8, + pub r#unknown31: u8, + pub r#unknown32: u8, + pub r#unknown33: u8, + pub r#unknown34: u8, + pub r#unknown35: u8, + pub r#unknown36: u8, + pub r#unknown37: u8, + pub r#unknown38: u8, + pub r#unknown39: u8, + pub r#unknown40: u8, + pub r#unknown41: u8, + pub r#unknown42: u8, + pub r#unknown43: u8, +} impl SharlayanCraftWorksSupply { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u8()?, + r#unknown1: row.field(1usize + offset)?.into_u8()?, + r#unknown2: row.field(2usize + offset)?.into_u8()?, + r#unknown3: row.field(3usize + offset)?.into_u8()?, + r#unknown4: row.field(4usize + offset)?.into_u32()?, + r#unknown5: row.field(5usize + offset)?.into_u32()?, + r#unknown6: row.field(6usize + offset)?.into_u32()?, + r#unknown7: row.field(7usize + offset)?.into_u32()?, + r#unknown8: row.field(8usize + offset)?.into_u16()?, + r#unknown9: row.field(9usize + offset)?.into_u16()?, + r#unknown10: row.field(10usize + offset)?.into_u16()?, + r#unknown11: row.field(11usize + offset)?.into_u16()?, + r#unknown12: row.field(12usize + offset)?.into_u16()?, + r#unknown13: row.field(13usize + offset)?.into_u16()?, + r#unknown14: row.field(14usize + offset)?.into_u16()?, + r#unknown15: row.field(15usize + offset)?.into_u16()?, + r#unknown16: row.field(16usize + offset)?.into_u32()?, + r#unknown17: row.field(17usize + offset)?.into_u32()?, + r#unknown18: row.field(18usize + offset)?.into_u32()?, + r#unknown19: row.field(19usize + offset)?.into_u32()?, + r#unknown20: row.field(20usize + offset)?.into_u8()?, + r#unknown21: row.field(21usize + offset)?.into_u8()?, + r#unknown22: row.field(22usize + offset)?.into_u8()?, + r#unknown23: row.field(23usize + offset)?.into_u8()?, + r#unknown24: row.field(24usize + offset)?.into_u16()?, + r#unknown25: row.field(25usize + offset)?.into_u16()?, + r#unknown26: row.field(26usize + offset)?.into_u16()?, + r#unknown27: row.field(27usize + offset)?.into_u16()?, + r#unknown28: row.field(28usize + offset)?.into_u8()?, + r#unknown29: row.field(29usize + offset)?.into_u8()?, + r#unknown30: row.field(30usize + offset)?.into_u8()?, + r#unknown31: row.field(31usize + offset)?.into_u8()?, + r#unknown32: row.field(32usize + offset)?.into_u8()?, + r#unknown33: row.field(33usize + offset)?.into_u8()?, + r#unknown34: row.field(34usize + offset)?.into_u8()?, + r#unknown35: row.field(35usize + offset)?.into_u8()?, + r#unknown36: row.field(36usize + offset)?.into_u8()?, + r#unknown37: row.field(37usize + offset)?.into_u8()?, + r#unknown38: row.field(38usize + offset)?.into_u8()?, + r#unknown39: row.field(39usize + offset)?.into_u8()?, + r#unknown40: row.field(40usize + offset)?.into_u8()?, + r#unknown41: row.field(41usize + offset)?.into_u8()?, + r#unknown42: row.field(42usize + offset)?.into_u8()?, + r#unknown43: row.field(43usize + offset)?.into_u8()?, + }) } } diff --git a/src/sheet/shell_fixed_from_command.rs b/src/sheet/shell_fixed_from_command.rs new file mode 100644 index 00000000..eb9d04e0 --- /dev/null +++ b/src/sheet/shell_fixed_from_command.rs @@ -0,0 +1,66 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; +impl MetadataAdapter for ShellFixedFromCommand { + fn name() -> String { + "ShellFixedFromCommand".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(ShellFixedFromCommand::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct ShellFixedFromCommand { + pub r#unknown0: bool, + pub r#unknown1: bool, + pub r#unknown2: u32, + pub r#unknown3: u32, + pub r#unknown4: bool, + pub r#unknown5: bool, + pub r#unknown6: u32, + pub r#unknown7: u8, + pub r#unknown8: u64, + pub r#unknown9: u64, + pub r#unknown10: u64, + pub r#unknown11: u64, + pub r#unknown12: u64, + pub r#unknown13: u8, + pub r#unknown14: u8, + pub r#unknown15: u8, + pub r#unknown16: u8, + pub r#unknown17: u8, + pub r#unknown18: u8, + pub r#unknown19: u8, + pub r#unknown20: u8, + pub r#unknown21: u8, +} +impl ShellFixedFromCommand { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_bool()?, + r#unknown1: row.field(1usize + offset)?.into_bool()?, + r#unknown2: row.field(2usize + offset)?.into_u32()?, + r#unknown3: row.field(3usize + offset)?.into_u32()?, + r#unknown4: row.field(4usize + offset)?.into_bool()?, + r#unknown5: row.field(5usize + offset)?.into_bool()?, + r#unknown6: row.field(6usize + offset)?.into_u32()?, + r#unknown7: row.field(7usize + offset)?.into_u8()?, + r#unknown8: row.field(8usize + offset)?.into_u64()?, + r#unknown9: row.field(9usize + offset)?.into_u64()?, + r#unknown10: row.field(10usize + offset)?.into_u64()?, + r#unknown11: row.field(11usize + offset)?.into_u64()?, + r#unknown12: row.field(12usize + offset)?.into_u64()?, + r#unknown13: row.field(13usize + offset)?.into_u8()?, + r#unknown14: row.field(14usize + offset)?.into_u8()?, + r#unknown15: row.field(15usize + offset)?.into_u8()?, + r#unknown16: row.field(16usize + offset)?.into_u8()?, + r#unknown17: row.field(17usize + offset)?.into_u8()?, + r#unknown18: row.field(18usize + offset)?.into_u8()?, + r#unknown19: row.field(19usize + offset)?.into_u8()?, + r#unknown20: row.field(20usize + offset)?.into_u8()?, + r#unknown21: row.field(21usize + offset)?.into_u8()?, + }) + } +} diff --git a/src/sheet/sky_island2_mission.rs b/src/sheet/sky_island2_mission.rs index e9d1fbbb..89ecacd1 100644 --- a/src/sheet/sky_island2_mission.rs +++ b/src/sheet/sky_island2_mission.rs @@ -1,7 +1,8 @@ -use crate::metadata::MetadataAdapter; 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 SkyIsland2Mission { fn name() -> String { "SkyIsland2Mission".to_string() @@ -34,6 +35,11 @@ pub struct SkyIsland2Mission { pub r#unknown18: u8, pub r#unknown19: u32, pub r#image: u32, + pub r#unknown21: SeString, + pub r#unknown22: SeString, + pub r#unknown23: SeString, + pub r#unknown24: SeString, + pub r#unknown25: SeString, } impl SkyIsland2Mission { pub fn populate(row: &Row, offset: usize) -> Result { @@ -59,6 +65,11 @@ impl SkyIsland2Mission { r#unknown18: row.field(18usize + offset)?.into_u8()?, r#unknown19: row.field(19usize + offset)?.into_u32()?, r#image: row.field(20usize + offset)?.into_u32()?, + r#unknown21: row.field(21usize + offset)?.into_string()?, + r#unknown22: row.field(22usize + offset)?.into_string()?, + r#unknown23: row.field(23usize + offset)?.into_string()?, + r#unknown24: row.field(24usize + offset)?.into_string()?, + r#unknown25: row.field(25usize + offset)?.into_string()?, }) } } diff --git a/src/sheet/sky_island2_mission_detail.rs b/src/sheet/sky_island2_mission_detail.rs index cb697d89..f09a4869 100644 --- a/src/sheet/sky_island2_mission_detail.rs +++ b/src/sheet/sky_island2_mission_detail.rs @@ -1,8 +1,8 @@ -use ironworks::excel::Row; +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 SkyIsland2MissionDetail { fn name() -> String { "SkyIsland2MissionDetail".to_string() @@ -22,6 +22,9 @@ pub struct SkyIsland2MissionDetail { pub r#unknown5: u32, pub r#unknown6: u32, pub r#objective: SeString, + pub r#unknown8: SeString, + pub r#unknown9: SeString, + pub r#unknown10: SeString, } impl SkyIsland2MissionDetail { pub fn populate(row: &Row, offset: usize) -> Result { @@ -34,6 +37,9 @@ impl SkyIsland2MissionDetail { r#unknown5: row.field(5usize + offset)?.into_u32()?, r#unknown6: row.field(6usize + offset)?.into_u32()?, r#objective: row.field(7usize + offset)?.into_string()?, + r#unknown8: row.field(8usize + offset)?.into_string()?, + r#unknown9: row.field(9usize + offset)?.into_string()?, + r#unknown10: row.field(10usize + offset)?.into_string()?, }) } } diff --git a/src/sheet/sky_island2_mission_type.rs b/src/sheet/sky_island2_mission_type.rs index e370f139..cefed59d 100644 --- a/src/sheet/sky_island2_mission_type.rs +++ b/src/sheet/sky_island2_mission_type.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; use crate::error::PopulateError; -use std::result::Result; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for SkyIsland2MissionType { fn name() -> String { "SkyIsland2MissionType".to_string() diff --git a/src/sheet/sky_island2_range_type.rs b/src/sheet/sky_island2_range_type.rs index 110d95d9..2c35be8f 100644 --- a/src/sheet/sky_island2_range_type.rs +++ b/src/sheet/sky_island2_range_type.rs @@ -1,7 +1,7 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; use ironworks::excel::Row; -use crate::error::PopulateError; +use std::result::Result; impl MetadataAdapter for SkyIsland2RangeType { fn name() -> String { "SkyIsland2RangeType".to_string() diff --git a/src/sheet/snipe.rs b/src/sheet/snipe.rs index 16548651..72013bc1 100644 --- a/src/sheet/snipe.rs +++ b/src/sheet/snipe.rs @@ -1,10 +1,10 @@ -use std::vec::Vec; -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; -use ironworks::excel::Row; +use crate::metadata::MetadataAdapter; use crate::utility::read_array; +use ironworks::excel::Row; use ironworks::sestring::SeString; use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for Snipe { fn name() -> String { "Snipe".to_string() @@ -107,6 +107,8 @@ pub struct Snipe { pub r#unknown102: SeString, pub r#unknown103: SeString, pub r#action_text: SeString, + pub r#unknown105: u8, + pub r#unknown106: u8, } impl Snipe { pub fn populate(row: &Row, offset: usize) -> Result { @@ -212,6 +214,8 @@ impl Snipe { r#unknown102: row.field(102usize + offset)?.into_string()?, r#unknown103: row.field(103usize + offset)?.into_string()?, r#action_text: row.field(104usize + offset)?.into_string()?, + r#unknown105: row.field(105usize + offset)?.into_u8()?, + r#unknown106: row.field(106usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/snipe_talk.rs b/src/sheet/snipe_talk.rs index 19b8fec5..97e86eb8 100644 --- a/src/sheet/snipe_talk.rs +++ b/src/sheet/snipe_talk.rs @@ -1,8 +1,8 @@ -use std::result::Result; -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for SnipeTalk { fn name() -> String { "SnipeTalk".to_string() @@ -18,6 +18,8 @@ pub struct SnipeTalk { pub r#unknown1: u8, pub r#name: u16, pub r#text: SeString, + pub r#unknown4: SeString, + pub r#unknown5: SeString, } impl SnipeTalk { pub fn populate(row: &Row, offset: usize) -> Result { @@ -26,6 +28,8 @@ impl SnipeTalk { r#unknown1: row.field(1usize + offset)?.into_u8()?, r#name: row.field(2usize + offset)?.into_u16()?, r#text: row.field(3usize + offset)?.into_string()?, + r#unknown4: row.field(4usize + offset)?.into_string()?, + r#unknown5: row.field(5usize + offset)?.into_string()?, }) } } diff --git a/src/sheet/snipe_talk_name.rs b/src/sheet/snipe_talk_name.rs index 2f6ce9c4..c6c653b9 100644 --- a/src/sheet/snipe_talk_name.rs +++ b/src/sheet/snipe_talk_name.rs @@ -1,8 +1,8 @@ -use std::result::Result; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for SnipeTalkName { fn name() -> String { "SnipeTalkName".to_string() diff --git a/src/sheet/spearfishing_combo_target.rs b/src/sheet/spearfishing_combo_target.rs index ee1cb71e..a92e88da 100644 --- a/src/sheet/spearfishing_combo_target.rs +++ b/src/sheet/spearfishing_combo_target.rs @@ -1,6 +1,7 @@ -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; use std::result::Result; impl MetadataAdapter for SpearfishingComboTarget { fn name() -> String { @@ -12,9 +13,17 @@ impl MetadataAdapter for SpearfishingComboTarget { } } #[derive(Debug)] -pub struct SpearfishingComboTarget {} +pub struct SpearfishingComboTarget { + pub r#unknown0: SeString, + pub r#unknown1: SeString, + pub r#unknown2: SeString, +} impl SpearfishingComboTarget { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_string()?, + r#unknown1: row.field(1usize + offset)?.into_string()?, + r#unknown2: row.field(2usize + offset)?.into_string()?, + }) } } diff --git a/src/sheet/spearfishing_item.rs b/src/sheet/spearfishing_item.rs index 907e1046..2dc4c34a 100644 --- a/src/sheet/spearfishing_item.rs +++ b/src/sheet/spearfishing_item.rs @@ -1,7 +1,7 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use ironworks::sestring::SeString; use ironworks::excel::Row; -use crate::error::PopulateError; +use ironworks::sestring::SeString; use std::result::Result; impl MetadataAdapter for SpearfishingItem { fn name() -> String { @@ -17,7 +17,7 @@ pub struct SpearfishingItem { pub r#description: SeString, pub r#item: i32, pub r#gathering_item_level: u16, - pub r#unknown3: bool, + pub r#unknown3: u16, pub r#unknown4: bool, pub r#fishing_record_type: u8, pub r#territory_type: u16, @@ -30,7 +30,7 @@ impl SpearfishingItem { r#description: row.field(0usize + offset)?.into_string()?, r#item: row.field(1usize + offset)?.into_i32()?, r#gathering_item_level: row.field(2usize + offset)?.into_u16()?, - r#unknown3: row.field(3usize + offset)?.into_bool()?, + r#unknown3: row.field(3usize + offset)?.into_u16()?, r#unknown4: row.field(4usize + offset)?.into_bool()?, r#fishing_record_type: row.field(5usize + offset)?.into_u8()?, r#territory_type: row.field(6usize + offset)?.into_u16()?, diff --git a/src/sheet/spearfishing_notebook.rs b/src/sheet/spearfishing_notebook.rs index cd898905..75afe1fb 100644 --- a/src/sheet/spearfishing_notebook.rs +++ b/src/sheet/spearfishing_notebook.rs @@ -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 SpearfishingNotebook { fn name() -> String { "SpearfishingNotebook".to_string() @@ -23,6 +23,8 @@ pub struct SpearfishingNotebook { pub r#place_name: u16, pub r#unknown8: u8, pub r#gathering_point_base: u16, + pub r#unknown10: u16, + pub r#unknown11: u16, } impl SpearfishingNotebook { pub fn populate(row: &Row, offset: usize) -> Result { @@ -37,6 +39,8 @@ impl SpearfishingNotebook { r#place_name: row.field(7usize + offset)?.into_u16()?, r#unknown8: row.field(8usize + offset)?.into_u8()?, r#gathering_point_base: row.field(9usize + offset)?.into_u16()?, + r#unknown10: row.field(10usize + offset)?.into_u16()?, + r#unknown11: row.field(11usize + offset)?.into_u16()?, }) } } diff --git a/src/sheet/spearfishing_record_page.rs b/src/sheet/spearfishing_record_page.rs index 0e2b78fb..02421162 100644 --- a/src/sheet/spearfishing_record_page.rs +++ b/src/sheet/spearfishing_record_page.rs @@ -1,7 +1,7 @@ -use std::result::Result; -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for SpearfishingRecordPage { fn name() -> String { "SpearfishingRecordPage".to_string() @@ -18,6 +18,8 @@ pub struct SpearfishingRecordPage { pub r#unknown2: u8, pub r#place_name: i32, pub r#image: i32, + pub r#unknown5: u16, + pub r#unknown6: u8, } impl SpearfishingRecordPage { pub fn populate(row: &Row, offset: usize) -> Result { @@ -27,6 +29,8 @@ impl SpearfishingRecordPage { r#unknown2: row.field(2usize + offset)?.into_u8()?, r#place_name: row.field(3usize + offset)?.into_i32()?, r#image: row.field(4usize + offset)?.into_i32()?, + r#unknown5: row.field(5usize + offset)?.into_u16()?, + r#unknown6: row.field(6usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/spearfishing_silhouette.rs b/src/sheet/spearfishing_silhouette.rs index 672fa4e0..18c4817c 100644 --- a/src/sheet/spearfishing_silhouette.rs +++ b/src/sheet/spearfishing_silhouette.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use std::result::Result; -use crate::error::PopulateError; impl MetadataAdapter for SpearfishingSilhouette { fn name() -> String { "SpearfishingSilhouette".to_string() @@ -12,9 +12,13 @@ impl MetadataAdapter for SpearfishingSilhouette { } } #[derive(Debug)] -pub struct SpearfishingSilhouette {} +pub struct SpearfishingSilhouette { + pub r#unknown0: u16, +} impl SpearfishingSilhouette { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u16()?, + }) } } diff --git a/src/sheet/special_shop.rs b/src/sheet/special_shop.rs index a20c514b..047bd3a9 100644 --- a/src/sheet/special_shop.rs +++ b/src/sheet/special_shop.rs @@ -1,10 +1,10 @@ use crate::error::PopulateError; -use std::vec::Vec; -use std::result::Result; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; use crate::utility::read_array; +use ironworks::excel::Row; use ironworks::sestring::SeString; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for SpecialShop { fn name() -> String { "SpecialShop".to_string() @@ -154,7 +154,66 @@ pub struct SpecialShop { pub r#unknown1318: i32, pub r#unknown1319: i32, pub r#unknown1320: i32, - pub r#achievement_unlock: Vec, + pub r#unknown1321: u8, + pub r#unknown1322: u8, + pub r#unknown1323: u8, + pub r#unknown1324: u8, + pub r#unknown1325: u8, + pub r#unknown1326: u8, + pub r#unknown1327: u8, + pub r#unknown1328: u8, + pub r#unknown1329: u8, + pub r#unknown1330: u8, + pub r#unknown1331: u8, + pub r#unknown1332: u8, + pub r#unknown1333: u8, + pub r#unknown1334: u8, + pub r#unknown1335: u8, + pub r#unknown1336: u8, + pub r#unknown1337: u8, + pub r#unknown1338: u8, + pub r#unknown1339: u8, + pub r#unknown1340: u8, + pub r#unknown1341: u8, + pub r#unknown1342: u8, + pub r#unknown1343: u8, + pub r#unknown1344: u8, + pub r#unknown1345: u8, + pub r#unknown1346: u8, + pub r#unknown1347: u8, + pub r#unknown1348: u8, + pub r#unknown1349: u8, + pub r#unknown1350: u8, + pub r#unknown1351: u8, + pub r#unknown1352: u8, + pub r#unknown1353: u8, + pub r#unknown1354: u8, + pub r#unknown1355: u8, + pub r#unknown1356: u8, + pub r#unknown1357: u8, + pub r#unknown1358: u8, + pub r#unknown1359: u8, + pub r#unknown1360: u8, + pub r#unknown1361: u8, + pub r#unknown1362: u8, + pub r#unknown1363: u8, + pub r#unknown1364: u8, + pub r#unknown1365: u8, + pub r#unknown1366: u8, + pub r#unknown1367: u8, + pub r#unknown1368: u8, + pub r#unknown1369: u8, + pub r#unknown1370: u8, + pub r#unknown1371: u8, + pub r#unknown1372: u8, + pub r#unknown1373: u8, + pub r#unknown1374: u8, + pub r#unknown1375: u8, + pub r#unknown1376: u8, + pub r#unknown1377: u8, + pub r#unknown1378: u8, + pub r#unknown1379: u8, + pub r#unknown1380: u8, pub r#unknown1381: u8, pub r#unknown1382: u8, pub r#unknown1383: u8, @@ -215,11 +274,499 @@ pub struct SpecialShop { pub r#unknown1438: u8, pub r#unknown1439: u8, pub r#unknown1440: u8, + pub r#unknown1441: u8, + pub r#unknown1442: u8, + pub r#unknown1443: u8, + pub r#unknown1444: u8, + pub r#unknown1445: u8, + pub r#unknown1446: u8, + pub r#unknown1447: u8, + pub r#unknown1448: u8, + pub r#unknown1449: u8, + pub r#unknown1450: u8, + pub r#unknown1451: u8, + pub r#unknown1452: u8, + pub r#unknown1453: u8, + pub r#unknown1454: u8, + pub r#unknown1455: u8, + pub r#unknown1456: u8, + pub r#unknown1457: u8, + pub r#unknown1458: u8, + pub r#unknown1459: u8, + pub r#unknown1460: u8, + pub r#unknown1461: u8, + pub r#unknown1462: u8, + pub r#unknown1463: u8, + pub r#unknown1464: u8, + pub r#unknown1465: u8, + pub r#unknown1466: u8, + pub r#unknown1467: u8, + pub r#unknown1468: u8, + pub r#unknown1469: u8, + pub r#unknown1470: u8, + pub r#unknown1471: u8, + pub r#unknown1472: u8, + pub r#unknown1473: u8, + pub r#unknown1474: u8, + pub r#unknown1475: u8, + pub r#unknown1476: u8, + pub r#unknown1477: u8, + pub r#unknown1478: u8, + pub r#unknown1479: u8, + pub r#unknown1480: u8, + pub r#unknown1481: u8, + pub r#unknown1482: u8, + pub r#unknown1483: u8, + pub r#unknown1484: u8, + pub r#unknown1485: u8, + pub r#unknown1486: u8, + pub r#unknown1487: u8, + pub r#unknown1488: u8, + pub r#unknown1489: u8, + pub r#unknown1490: u8, + pub r#unknown1491: u8, + pub r#unknown1492: u8, + pub r#unknown1493: u8, + pub r#unknown1494: u8, + pub r#unknown1495: u8, + pub r#unknown1496: u8, + pub r#unknown1497: u8, + pub r#unknown1498: u8, + pub r#unknown1499: u8, + pub r#unknown1500: u8, + pub r#unknown1501: i32, + pub r#unknown1502: i32, + pub r#unknown1503: i32, + pub r#unknown1504: i32, + pub r#unknown1505: i32, + pub r#unknown1506: i32, + pub r#unknown1507: i32, + pub r#unknown1508: i32, + pub r#unknown1509: i32, + pub r#unknown1510: i32, + pub r#unknown1511: i32, + pub r#unknown1512: i32, + pub r#unknown1513: i32, + pub r#unknown1514: i32, + pub r#unknown1515: i32, + pub r#unknown1516: i32, + pub r#unknown1517: i32, + pub r#unknown1518: i32, + pub r#unknown1519: i32, + pub r#unknown1520: i32, + pub r#unknown1521: i32, + pub r#unknown1522: i32, + pub r#unknown1523: i32, + pub r#unknown1524: i32, + pub r#unknown1525: i32, + pub r#unknown1526: i32, + pub r#unknown1527: i32, + pub r#unknown1528: i32, + pub r#unknown1529: i32, + pub r#unknown1530: i32, + pub r#unknown1531: i32, + pub r#unknown1532: i32, + pub r#unknown1533: i32, + pub r#unknown1534: i32, + pub r#unknown1535: i32, + pub r#unknown1536: i32, + pub r#unknown1537: i32, + pub r#unknown1538: i32, + pub r#unknown1539: i32, + pub r#unknown1540: i32, + pub r#unknown1541: i32, + pub r#unknown1542: i32, + pub r#unknown1543: i32, + pub r#unknown1544: i32, + pub r#unknown1545: i32, + pub r#unknown1546: i32, + pub r#unknown1547: i32, + pub r#unknown1548: i32, + pub r#unknown1549: i32, + pub r#unknown1550: i32, + pub r#unknown1551: i32, + pub r#unknown1552: i32, + pub r#unknown1553: i32, + pub r#unknown1554: i32, + pub r#unknown1555: i32, + pub r#unknown1556: i32, + pub r#unknown1557: i32, + pub r#unknown1558: i32, + pub r#unknown1559: i32, + pub r#unknown1560: i32, + pub r#unknown1561: i32, + pub r#unknown1562: i32, + pub r#unknown1563: i32, + pub r#unknown1564: i32, + pub r#unknown1565: i32, + pub r#unknown1566: i32, + pub r#unknown1567: i32, + pub r#unknown1568: i32, + pub r#unknown1569: i32, + pub r#unknown1570: i32, + pub r#unknown1571: i32, + pub r#unknown1572: i32, + pub r#unknown1573: i32, + pub r#unknown1574: i32, + pub r#unknown1575: i32, + pub r#unknown1576: i32, + pub r#unknown1577: i32, + pub r#unknown1578: i32, + pub r#unknown1579: i32, + pub r#unknown1580: i32, + pub r#unknown1581: i32, + pub r#unknown1582: i32, + pub r#unknown1583: i32, + pub r#unknown1584: i32, + pub r#unknown1585: i32, + pub r#unknown1586: i32, + pub r#unknown1587: i32, + pub r#unknown1588: i32, + pub r#unknown1589: i32, + pub r#unknown1590: i32, + pub r#unknown1591: i32, + pub r#unknown1592: i32, + pub r#unknown1593: i32, + pub r#unknown1594: i32, + pub r#unknown1595: i32, + pub r#unknown1596: i32, + pub r#unknown1597: i32, + pub r#unknown1598: i32, + pub r#unknown1599: i32, + pub r#unknown1600: i32, + pub r#unknown1601: i32, + pub r#unknown1602: i32, + pub r#unknown1603: i32, + pub r#unknown1604: i32, + pub r#unknown1605: i32, + pub r#unknown1606: i32, + pub r#unknown1607: i32, + pub r#unknown1608: i32, + pub r#unknown1609: i32, + pub r#unknown1610: i32, + pub r#unknown1611: i32, + pub r#unknown1612: i32, + pub r#unknown1613: i32, + pub r#unknown1614: i32, + pub r#unknown1615: i32, + pub r#unknown1616: i32, + pub r#unknown1617: i32, + pub r#unknown1618: i32, + pub r#unknown1619: i32, + pub r#unknown1620: i32, + pub r#unknown1621: u8, + pub r#unknown1622: u8, + pub r#unknown1623: u8, + pub r#unknown1624: u8, + pub r#unknown1625: u8, + pub r#unknown1626: u8, + pub r#unknown1627: u8, + pub r#unknown1628: u8, + pub r#unknown1629: u8, + pub r#unknown1630: u8, + pub r#unknown1631: u8, + pub r#unknown1632: u8, + pub r#unknown1633: u8, + pub r#unknown1634: u8, + pub r#unknown1635: u8, + pub r#unknown1636: u8, + pub r#unknown1637: u8, + pub r#unknown1638: u8, + pub r#unknown1639: u8, + pub r#unknown1640: u8, + pub r#unknown1641: u8, + pub r#unknown1642: u8, + pub r#unknown1643: u8, + pub r#unknown1644: u8, + pub r#unknown1645: u8, + pub r#unknown1646: u8, + pub r#unknown1647: u8, + pub r#unknown1648: u8, + pub r#unknown1649: u8, + pub r#unknown1650: u8, + pub r#unknown1651: u8, + pub r#unknown1652: u8, + pub r#unknown1653: u8, + pub r#unknown1654: u8, + pub r#unknown1655: u8, + pub r#unknown1656: u8, + pub r#unknown1657: u8, + pub r#unknown1658: u8, + pub r#unknown1659: u8, + pub r#unknown1660: u8, + pub r#unknown1661: u8, + pub r#unknown1662: u8, + pub r#unknown1663: u8, + pub r#unknown1664: u8, + pub r#unknown1665: u8, + pub r#unknown1666: u8, + pub r#unknown1667: u8, + pub r#unknown1668: u8, + pub r#unknown1669: u8, + pub r#unknown1670: u8, + pub r#unknown1671: u8, + pub r#unknown1672: u8, + pub r#unknown1673: u8, + pub r#unknown1674: u8, + pub r#unknown1675: u8, + pub r#unknown1676: u8, + pub r#unknown1677: u8, + pub r#unknown1678: u8, + pub r#unknown1679: u8, + pub r#unknown1680: u8, + pub r#unknown1681: i32, + pub r#unknown1682: i32, + pub r#unknown1683: i32, + pub r#unknown1684: i32, + pub r#unknown1685: i32, + pub r#unknown1686: i32, + pub r#unknown1687: i32, + pub r#unknown1688: i32, + pub r#unknown1689: i32, + pub r#unknown1690: i32, + pub r#unknown1691: i32, + pub r#unknown1692: i32, + pub r#unknown1693: i32, + pub r#unknown1694: i32, + pub r#unknown1695: i32, + pub r#unknown1696: i32, + pub r#unknown1697: i32, + pub r#unknown1698: i32, + pub r#unknown1699: i32, + pub r#unknown1700: i32, + pub r#unknown1701: i32, + pub r#unknown1702: i32, + pub r#unknown1703: i32, + pub r#unknown1704: i32, + pub r#unknown1705: i32, + pub r#unknown1706: i32, + pub r#unknown1707: i32, + pub r#unknown1708: i32, + pub r#unknown1709: i32, + pub r#unknown1710: i32, + pub r#unknown1711: i32, + pub r#unknown1712: i32, + pub r#unknown1713: i32, + pub r#unknown1714: i32, + pub r#unknown1715: i32, + pub r#unknown1716: i32, + pub r#unknown1717: i32, + pub r#unknown1718: i32, + pub r#unknown1719: i32, + pub r#unknown1720: i32, + pub r#unknown1721: i32, + pub r#unknown1722: i32, + pub r#unknown1723: i32, + pub r#unknown1724: i32, + pub r#unknown1725: i32, + pub r#unknown1726: i32, + pub r#unknown1727: i32, + pub r#unknown1728: i32, + pub r#unknown1729: i32, + pub r#unknown1730: i32, + pub r#unknown1731: i32, + pub r#unknown1732: i32, + pub r#unknown1733: i32, + pub r#unknown1734: i32, + pub r#unknown1735: i32, + pub r#unknown1736: i32, + pub r#unknown1737: i32, + pub r#unknown1738: i32, + pub r#unknown1739: i32, + pub r#unknown1740: i32, + pub r#achievement_unlock: Vec, + pub r#unknown1801: u8, + pub r#unknown1802: u8, + pub r#unknown1803: u8, + pub r#unknown1804: u8, + pub r#unknown1805: u8, + pub r#unknown1806: u8, + pub r#unknown1807: u8, + pub r#unknown1808: u8, + pub r#unknown1809: u8, + pub r#unknown1810: u8, + pub r#unknown1811: u8, + pub r#unknown1812: u8, + pub r#unknown1813: u8, + pub r#unknown1814: u8, + pub r#unknown1815: u8, + pub r#unknown1816: u8, + pub r#unknown1817: u8, + pub r#unknown1818: u8, + pub r#unknown1819: u8, + pub r#unknown1820: u8, + pub r#unknown1821: u8, + pub r#unknown1822: u8, + pub r#unknown1823: u8, + pub r#unknown1824: u8, + pub r#unknown1825: u8, + pub r#unknown1826: u8, + pub r#unknown1827: u8, + pub r#unknown1828: u8, + pub r#unknown1829: u8, + pub r#unknown1830: u8, + pub r#unknown1831: u8, + pub r#unknown1832: u8, + pub r#unknown1833: u8, + pub r#unknown1834: u8, + pub r#unknown1835: u8, + pub r#unknown1836: u8, + pub r#unknown1837: u8, + pub r#unknown1838: u8, + pub r#unknown1839: u8, + pub r#unknown1840: u8, + pub r#unknown1841: u8, + pub r#unknown1842: u8, + pub r#unknown1843: u8, + pub r#unknown1844: u8, + pub r#unknown1845: u8, + pub r#unknown1846: u8, + pub r#unknown1847: u8, + pub r#unknown1848: u8, + pub r#unknown1849: u8, + pub r#unknown1850: u8, + pub r#unknown1851: u8, + pub r#unknown1852: u8, + pub r#unknown1853: u8, + pub r#unknown1854: u8, + pub r#unknown1855: u8, + pub r#unknown1856: u8, + pub r#unknown1857: u8, + pub r#unknown1858: u8, + pub r#unknown1859: u8, + pub r#unknown1860: u8, + pub r#unknown1861: i32, + pub r#unknown1862: i32, + pub r#unknown1863: i32, + pub r#unknown1864: i32, + pub r#unknown1865: i32, + pub r#unknown1866: i32, + pub r#unknown1867: i32, + pub r#unknown1868: i32, + pub r#unknown1869: i32, + pub r#unknown1870: i32, + pub r#unknown1871: i32, + pub r#unknown1872: i32, + pub r#unknown1873: i32, + pub r#unknown1874: i32, + pub r#unknown1875: i32, + pub r#unknown1876: i32, + pub r#unknown1877: i32, + pub r#unknown1878: i32, + pub r#unknown1879: i32, + pub r#unknown1880: i32, + pub r#unknown1881: i32, + pub r#unknown1882: i32, + pub r#unknown1883: i32, + pub r#unknown1884: i32, + pub r#unknown1885: i32, + pub r#unknown1886: i32, + pub r#unknown1887: i32, + pub r#unknown1888: i32, + pub r#unknown1889: i32, + pub r#unknown1890: i32, + pub r#unknown1891: i32, + pub r#unknown1892: i32, + pub r#unknown1893: i32, + pub r#unknown1894: i32, + pub r#unknown1895: i32, + pub r#unknown1896: i32, + pub r#unknown1897: i32, + pub r#unknown1898: i32, + pub r#unknown1899: i32, + pub r#unknown1900: i32, + pub r#unknown1901: i32, + pub r#unknown1902: i32, + pub r#unknown1903: i32, + pub r#unknown1904: i32, + pub r#unknown1905: i32, + pub r#unknown1906: i32, + pub r#unknown1907: i32, + pub r#unknown1908: i32, + pub r#unknown1909: i32, + pub r#unknown1910: i32, + pub r#unknown1911: i32, + pub r#unknown1912: i32, + pub r#unknown1913: i32, + pub r#unknown1914: i32, + pub r#unknown1915: i32, + pub r#unknown1916: i32, + pub r#unknown1917: i32, + pub r#unknown1918: i32, + pub r#unknown1919: i32, + pub r#unknown1920: i32, + pub r#unknown1921: u8, + pub r#unknown1922: u8, + pub r#unknown1923: u8, + pub r#unknown1924: u8, + pub r#unknown1925: u8, + pub r#unknown1926: u8, + pub r#unknown1927: u8, + pub r#unknown1928: u8, + pub r#unknown1929: u8, + pub r#unknown1930: u8, + pub r#unknown1931: u8, + pub r#unknown1932: u8, + pub r#unknown1933: u8, + pub r#unknown1934: u8, + pub r#unknown1935: u8, + pub r#unknown1936: u8, + pub r#unknown1937: u8, + pub r#unknown1938: u8, + pub r#unknown1939: u8, + pub r#unknown1940: u8, + pub r#unknown1941: u8, + pub r#unknown1942: u8, + pub r#unknown1943: u8, + pub r#unknown1944: u8, + pub r#unknown1945: u8, + pub r#unknown1946: u8, + pub r#unknown1947: u8, + pub r#unknown1948: u8, + pub r#unknown1949: u8, + pub r#unknown1950: u8, + pub r#unknown1951: u8, + pub r#unknown1952: u8, + pub r#unknown1953: u8, + pub r#unknown1954: u8, + pub r#unknown1955: u8, + pub r#unknown1956: u8, + pub r#unknown1957: u8, + pub r#unknown1958: u8, + pub r#unknown1959: u8, + pub r#unknown1960: u8, + pub r#unknown1961: u8, + pub r#unknown1962: u8, + pub r#unknown1963: u8, + pub r#unknown1964: u8, + pub r#unknown1965: u8, + pub r#unknown1966: u8, + pub r#unknown1967: u8, + pub r#unknown1968: u8, + pub r#unknown1969: u8, + pub r#unknown1970: u8, + pub r#unknown1971: u8, + pub r#unknown1972: u8, + pub r#unknown1973: u8, + pub r#unknown1974: u8, + pub r#unknown1975: u8, + pub r#unknown1976: u8, + pub r#unknown1977: u8, + pub r#unknown1978: u8, + pub r#unknown1979: u8, + pub r#unknown1980: u8, pub r#patch_number: Vec, pub r#use_currency_type: u8, pub r#quest_unlock: u32, pub r#complete_text: i32, pub r#not_complete_text: i32, + pub r#unknown2045: u32, + pub r#unknown2046: bool, + pub r#unknown2047: u16, + pub r#unknown2048: u16, + pub r#unknown2049: u32, + pub r#unknown2050: bool, + pub r#unknown2051: bool, } impl SpecialShop { pub fn populate(row: &Row, offset: usize) -> Result { @@ -303,12 +850,66 @@ impl SpecialShop { r#unknown1318: row.field(1318usize + offset)?.into_i32()?, r#unknown1319: row.field(1319usize + offset)?.into_i32()?, r#unknown1320: row.field(1320usize + offset)?.into_i32()?, - r#achievement_unlock: read_array( - offset, - 60usize, - 1usize, - |offset| { Result::Ok(row.field(1321usize + offset)?.into_i32()?) }, - )?, + r#unknown1321: row.field(1321usize + offset)?.into_u8()?, + r#unknown1322: row.field(1322usize + offset)?.into_u8()?, + r#unknown1323: row.field(1323usize + offset)?.into_u8()?, + r#unknown1324: row.field(1324usize + offset)?.into_u8()?, + r#unknown1325: row.field(1325usize + offset)?.into_u8()?, + r#unknown1326: row.field(1326usize + offset)?.into_u8()?, + r#unknown1327: row.field(1327usize + offset)?.into_u8()?, + r#unknown1328: row.field(1328usize + offset)?.into_u8()?, + r#unknown1329: row.field(1329usize + offset)?.into_u8()?, + r#unknown1330: row.field(1330usize + offset)?.into_u8()?, + r#unknown1331: row.field(1331usize + offset)?.into_u8()?, + r#unknown1332: row.field(1332usize + offset)?.into_u8()?, + r#unknown1333: row.field(1333usize + offset)?.into_u8()?, + r#unknown1334: row.field(1334usize + offset)?.into_u8()?, + r#unknown1335: row.field(1335usize + offset)?.into_u8()?, + r#unknown1336: row.field(1336usize + offset)?.into_u8()?, + r#unknown1337: row.field(1337usize + offset)?.into_u8()?, + r#unknown1338: row.field(1338usize + offset)?.into_u8()?, + r#unknown1339: row.field(1339usize + offset)?.into_u8()?, + r#unknown1340: row.field(1340usize + offset)?.into_u8()?, + r#unknown1341: row.field(1341usize + offset)?.into_u8()?, + r#unknown1342: row.field(1342usize + offset)?.into_u8()?, + r#unknown1343: row.field(1343usize + offset)?.into_u8()?, + r#unknown1344: row.field(1344usize + offset)?.into_u8()?, + r#unknown1345: row.field(1345usize + offset)?.into_u8()?, + r#unknown1346: row.field(1346usize + offset)?.into_u8()?, + r#unknown1347: row.field(1347usize + offset)?.into_u8()?, + r#unknown1348: row.field(1348usize + offset)?.into_u8()?, + r#unknown1349: row.field(1349usize + offset)?.into_u8()?, + r#unknown1350: row.field(1350usize + offset)?.into_u8()?, + r#unknown1351: row.field(1351usize + offset)?.into_u8()?, + r#unknown1352: row.field(1352usize + offset)?.into_u8()?, + r#unknown1353: row.field(1353usize + offset)?.into_u8()?, + r#unknown1354: row.field(1354usize + offset)?.into_u8()?, + r#unknown1355: row.field(1355usize + offset)?.into_u8()?, + r#unknown1356: row.field(1356usize + offset)?.into_u8()?, + r#unknown1357: row.field(1357usize + offset)?.into_u8()?, + r#unknown1358: row.field(1358usize + offset)?.into_u8()?, + r#unknown1359: row.field(1359usize + offset)?.into_u8()?, + r#unknown1360: row.field(1360usize + offset)?.into_u8()?, + r#unknown1361: row.field(1361usize + offset)?.into_u8()?, + r#unknown1362: row.field(1362usize + offset)?.into_u8()?, + r#unknown1363: row.field(1363usize + offset)?.into_u8()?, + r#unknown1364: row.field(1364usize + offset)?.into_u8()?, + r#unknown1365: row.field(1365usize + offset)?.into_u8()?, + r#unknown1366: row.field(1366usize + offset)?.into_u8()?, + r#unknown1367: row.field(1367usize + offset)?.into_u8()?, + r#unknown1368: row.field(1368usize + offset)?.into_u8()?, + r#unknown1369: row.field(1369usize + offset)?.into_u8()?, + r#unknown1370: row.field(1370usize + offset)?.into_u8()?, + r#unknown1371: row.field(1371usize + offset)?.into_u8()?, + r#unknown1372: row.field(1372usize + offset)?.into_u8()?, + r#unknown1373: row.field(1373usize + offset)?.into_u8()?, + r#unknown1374: row.field(1374usize + offset)?.into_u8()?, + r#unknown1375: row.field(1375usize + offset)?.into_u8()?, + r#unknown1376: row.field(1376usize + offset)?.into_u8()?, + r#unknown1377: row.field(1377usize + offset)?.into_u8()?, + r#unknown1378: row.field(1378usize + offset)?.into_u8()?, + r#unknown1379: row.field(1379usize + offset)?.into_u8()?, + r#unknown1380: row.field(1380usize + offset)?.into_u8()?, r#unknown1381: row.field(1381usize + offset)?.into_u8()?, r#unknown1382: row.field(1382usize + offset)?.into_u8()?, r#unknown1383: row.field(1383usize + offset)?.into_u8()?, @@ -369,16 +970,509 @@ impl SpecialShop { r#unknown1438: row.field(1438usize + offset)?.into_u8()?, r#unknown1439: row.field(1439usize + offset)?.into_u8()?, r#unknown1440: row.field(1440usize + offset)?.into_u8()?, + r#unknown1441: row.field(1441usize + offset)?.into_u8()?, + r#unknown1442: row.field(1442usize + offset)?.into_u8()?, + r#unknown1443: row.field(1443usize + offset)?.into_u8()?, + r#unknown1444: row.field(1444usize + offset)?.into_u8()?, + r#unknown1445: row.field(1445usize + offset)?.into_u8()?, + r#unknown1446: row.field(1446usize + offset)?.into_u8()?, + r#unknown1447: row.field(1447usize + offset)?.into_u8()?, + r#unknown1448: row.field(1448usize + offset)?.into_u8()?, + r#unknown1449: row.field(1449usize + offset)?.into_u8()?, + r#unknown1450: row.field(1450usize + offset)?.into_u8()?, + r#unknown1451: row.field(1451usize + offset)?.into_u8()?, + r#unknown1452: row.field(1452usize + offset)?.into_u8()?, + r#unknown1453: row.field(1453usize + offset)?.into_u8()?, + r#unknown1454: row.field(1454usize + offset)?.into_u8()?, + r#unknown1455: row.field(1455usize + offset)?.into_u8()?, + r#unknown1456: row.field(1456usize + offset)?.into_u8()?, + r#unknown1457: row.field(1457usize + offset)?.into_u8()?, + r#unknown1458: row.field(1458usize + offset)?.into_u8()?, + r#unknown1459: row.field(1459usize + offset)?.into_u8()?, + r#unknown1460: row.field(1460usize + offset)?.into_u8()?, + r#unknown1461: row.field(1461usize + offset)?.into_u8()?, + r#unknown1462: row.field(1462usize + offset)?.into_u8()?, + r#unknown1463: row.field(1463usize + offset)?.into_u8()?, + r#unknown1464: row.field(1464usize + offset)?.into_u8()?, + r#unknown1465: row.field(1465usize + offset)?.into_u8()?, + r#unknown1466: row.field(1466usize + offset)?.into_u8()?, + r#unknown1467: row.field(1467usize + offset)?.into_u8()?, + r#unknown1468: row.field(1468usize + offset)?.into_u8()?, + r#unknown1469: row.field(1469usize + offset)?.into_u8()?, + r#unknown1470: row.field(1470usize + offset)?.into_u8()?, + r#unknown1471: row.field(1471usize + offset)?.into_u8()?, + r#unknown1472: row.field(1472usize + offset)?.into_u8()?, + r#unknown1473: row.field(1473usize + offset)?.into_u8()?, + r#unknown1474: row.field(1474usize + offset)?.into_u8()?, + r#unknown1475: row.field(1475usize + offset)?.into_u8()?, + r#unknown1476: row.field(1476usize + offset)?.into_u8()?, + r#unknown1477: row.field(1477usize + offset)?.into_u8()?, + r#unknown1478: row.field(1478usize + offset)?.into_u8()?, + r#unknown1479: row.field(1479usize + offset)?.into_u8()?, + r#unknown1480: row.field(1480usize + offset)?.into_u8()?, + r#unknown1481: row.field(1481usize + offset)?.into_u8()?, + r#unknown1482: row.field(1482usize + offset)?.into_u8()?, + r#unknown1483: row.field(1483usize + offset)?.into_u8()?, + r#unknown1484: row.field(1484usize + offset)?.into_u8()?, + r#unknown1485: row.field(1485usize + offset)?.into_u8()?, + r#unknown1486: row.field(1486usize + offset)?.into_u8()?, + r#unknown1487: row.field(1487usize + offset)?.into_u8()?, + r#unknown1488: row.field(1488usize + offset)?.into_u8()?, + r#unknown1489: row.field(1489usize + offset)?.into_u8()?, + r#unknown1490: row.field(1490usize + offset)?.into_u8()?, + r#unknown1491: row.field(1491usize + offset)?.into_u8()?, + r#unknown1492: row.field(1492usize + offset)?.into_u8()?, + r#unknown1493: row.field(1493usize + offset)?.into_u8()?, + r#unknown1494: row.field(1494usize + offset)?.into_u8()?, + r#unknown1495: row.field(1495usize + offset)?.into_u8()?, + r#unknown1496: row.field(1496usize + offset)?.into_u8()?, + r#unknown1497: row.field(1497usize + offset)?.into_u8()?, + r#unknown1498: row.field(1498usize + offset)?.into_u8()?, + r#unknown1499: row.field(1499usize + offset)?.into_u8()?, + r#unknown1500: row.field(1500usize + offset)?.into_u8()?, + r#unknown1501: row.field(1501usize + offset)?.into_i32()?, + r#unknown1502: row.field(1502usize + offset)?.into_i32()?, + r#unknown1503: row.field(1503usize + offset)?.into_i32()?, + r#unknown1504: row.field(1504usize + offset)?.into_i32()?, + r#unknown1505: row.field(1505usize + offset)?.into_i32()?, + r#unknown1506: row.field(1506usize + offset)?.into_i32()?, + r#unknown1507: row.field(1507usize + offset)?.into_i32()?, + r#unknown1508: row.field(1508usize + offset)?.into_i32()?, + r#unknown1509: row.field(1509usize + offset)?.into_i32()?, + r#unknown1510: row.field(1510usize + offset)?.into_i32()?, + r#unknown1511: row.field(1511usize + offset)?.into_i32()?, + r#unknown1512: row.field(1512usize + offset)?.into_i32()?, + r#unknown1513: row.field(1513usize + offset)?.into_i32()?, + r#unknown1514: row.field(1514usize + offset)?.into_i32()?, + r#unknown1515: row.field(1515usize + offset)?.into_i32()?, + r#unknown1516: row.field(1516usize + offset)?.into_i32()?, + r#unknown1517: row.field(1517usize + offset)?.into_i32()?, + r#unknown1518: row.field(1518usize + offset)?.into_i32()?, + r#unknown1519: row.field(1519usize + offset)?.into_i32()?, + r#unknown1520: row.field(1520usize + offset)?.into_i32()?, + r#unknown1521: row.field(1521usize + offset)?.into_i32()?, + r#unknown1522: row.field(1522usize + offset)?.into_i32()?, + r#unknown1523: row.field(1523usize + offset)?.into_i32()?, + r#unknown1524: row.field(1524usize + offset)?.into_i32()?, + r#unknown1525: row.field(1525usize + offset)?.into_i32()?, + r#unknown1526: row.field(1526usize + offset)?.into_i32()?, + r#unknown1527: row.field(1527usize + offset)?.into_i32()?, + r#unknown1528: row.field(1528usize + offset)?.into_i32()?, + r#unknown1529: row.field(1529usize + offset)?.into_i32()?, + r#unknown1530: row.field(1530usize + offset)?.into_i32()?, + r#unknown1531: row.field(1531usize + offset)?.into_i32()?, + r#unknown1532: row.field(1532usize + offset)?.into_i32()?, + r#unknown1533: row.field(1533usize + offset)?.into_i32()?, + r#unknown1534: row.field(1534usize + offset)?.into_i32()?, + r#unknown1535: row.field(1535usize + offset)?.into_i32()?, + r#unknown1536: row.field(1536usize + offset)?.into_i32()?, + r#unknown1537: row.field(1537usize + offset)?.into_i32()?, + r#unknown1538: row.field(1538usize + offset)?.into_i32()?, + r#unknown1539: row.field(1539usize + offset)?.into_i32()?, + r#unknown1540: row.field(1540usize + offset)?.into_i32()?, + r#unknown1541: row.field(1541usize + offset)?.into_i32()?, + r#unknown1542: row.field(1542usize + offset)?.into_i32()?, + r#unknown1543: row.field(1543usize + offset)?.into_i32()?, + r#unknown1544: row.field(1544usize + offset)?.into_i32()?, + r#unknown1545: row.field(1545usize + offset)?.into_i32()?, + r#unknown1546: row.field(1546usize + offset)?.into_i32()?, + r#unknown1547: row.field(1547usize + offset)?.into_i32()?, + r#unknown1548: row.field(1548usize + offset)?.into_i32()?, + r#unknown1549: row.field(1549usize + offset)?.into_i32()?, + r#unknown1550: row.field(1550usize + offset)?.into_i32()?, + r#unknown1551: row.field(1551usize + offset)?.into_i32()?, + r#unknown1552: row.field(1552usize + offset)?.into_i32()?, + r#unknown1553: row.field(1553usize + offset)?.into_i32()?, + r#unknown1554: row.field(1554usize + offset)?.into_i32()?, + r#unknown1555: row.field(1555usize + offset)?.into_i32()?, + r#unknown1556: row.field(1556usize + offset)?.into_i32()?, + r#unknown1557: row.field(1557usize + offset)?.into_i32()?, + r#unknown1558: row.field(1558usize + offset)?.into_i32()?, + r#unknown1559: row.field(1559usize + offset)?.into_i32()?, + r#unknown1560: row.field(1560usize + offset)?.into_i32()?, + r#unknown1561: row.field(1561usize + offset)?.into_i32()?, + r#unknown1562: row.field(1562usize + offset)?.into_i32()?, + r#unknown1563: row.field(1563usize + offset)?.into_i32()?, + r#unknown1564: row.field(1564usize + offset)?.into_i32()?, + r#unknown1565: row.field(1565usize + offset)?.into_i32()?, + r#unknown1566: row.field(1566usize + offset)?.into_i32()?, + r#unknown1567: row.field(1567usize + offset)?.into_i32()?, + r#unknown1568: row.field(1568usize + offset)?.into_i32()?, + r#unknown1569: row.field(1569usize + offset)?.into_i32()?, + r#unknown1570: row.field(1570usize + offset)?.into_i32()?, + r#unknown1571: row.field(1571usize + offset)?.into_i32()?, + r#unknown1572: row.field(1572usize + offset)?.into_i32()?, + r#unknown1573: row.field(1573usize + offset)?.into_i32()?, + r#unknown1574: row.field(1574usize + offset)?.into_i32()?, + r#unknown1575: row.field(1575usize + offset)?.into_i32()?, + r#unknown1576: row.field(1576usize + offset)?.into_i32()?, + r#unknown1577: row.field(1577usize + offset)?.into_i32()?, + r#unknown1578: row.field(1578usize + offset)?.into_i32()?, + r#unknown1579: row.field(1579usize + offset)?.into_i32()?, + r#unknown1580: row.field(1580usize + offset)?.into_i32()?, + r#unknown1581: row.field(1581usize + offset)?.into_i32()?, + r#unknown1582: row.field(1582usize + offset)?.into_i32()?, + r#unknown1583: row.field(1583usize + offset)?.into_i32()?, + r#unknown1584: row.field(1584usize + offset)?.into_i32()?, + r#unknown1585: row.field(1585usize + offset)?.into_i32()?, + r#unknown1586: row.field(1586usize + offset)?.into_i32()?, + r#unknown1587: row.field(1587usize + offset)?.into_i32()?, + r#unknown1588: row.field(1588usize + offset)?.into_i32()?, + r#unknown1589: row.field(1589usize + offset)?.into_i32()?, + r#unknown1590: row.field(1590usize + offset)?.into_i32()?, + r#unknown1591: row.field(1591usize + offset)?.into_i32()?, + r#unknown1592: row.field(1592usize + offset)?.into_i32()?, + r#unknown1593: row.field(1593usize + offset)?.into_i32()?, + r#unknown1594: row.field(1594usize + offset)?.into_i32()?, + r#unknown1595: row.field(1595usize + offset)?.into_i32()?, + r#unknown1596: row.field(1596usize + offset)?.into_i32()?, + r#unknown1597: row.field(1597usize + offset)?.into_i32()?, + r#unknown1598: row.field(1598usize + offset)?.into_i32()?, + r#unknown1599: row.field(1599usize + offset)?.into_i32()?, + r#unknown1600: row.field(1600usize + offset)?.into_i32()?, + r#unknown1601: row.field(1601usize + offset)?.into_i32()?, + r#unknown1602: row.field(1602usize + offset)?.into_i32()?, + r#unknown1603: row.field(1603usize + offset)?.into_i32()?, + r#unknown1604: row.field(1604usize + offset)?.into_i32()?, + r#unknown1605: row.field(1605usize + offset)?.into_i32()?, + r#unknown1606: row.field(1606usize + offset)?.into_i32()?, + r#unknown1607: row.field(1607usize + offset)?.into_i32()?, + r#unknown1608: row.field(1608usize + offset)?.into_i32()?, + r#unknown1609: row.field(1609usize + offset)?.into_i32()?, + r#unknown1610: row.field(1610usize + offset)?.into_i32()?, + r#unknown1611: row.field(1611usize + offset)?.into_i32()?, + r#unknown1612: row.field(1612usize + offset)?.into_i32()?, + r#unknown1613: row.field(1613usize + offset)?.into_i32()?, + r#unknown1614: row.field(1614usize + offset)?.into_i32()?, + r#unknown1615: row.field(1615usize + offset)?.into_i32()?, + r#unknown1616: row.field(1616usize + offset)?.into_i32()?, + r#unknown1617: row.field(1617usize + offset)?.into_i32()?, + r#unknown1618: row.field(1618usize + offset)?.into_i32()?, + r#unknown1619: row.field(1619usize + offset)?.into_i32()?, + r#unknown1620: row.field(1620usize + offset)?.into_i32()?, + r#unknown1621: row.field(1621usize + offset)?.into_u8()?, + r#unknown1622: row.field(1622usize + offset)?.into_u8()?, + r#unknown1623: row.field(1623usize + offset)?.into_u8()?, + r#unknown1624: row.field(1624usize + offset)?.into_u8()?, + r#unknown1625: row.field(1625usize + offset)?.into_u8()?, + r#unknown1626: row.field(1626usize + offset)?.into_u8()?, + r#unknown1627: row.field(1627usize + offset)?.into_u8()?, + r#unknown1628: row.field(1628usize + offset)?.into_u8()?, + r#unknown1629: row.field(1629usize + offset)?.into_u8()?, + r#unknown1630: row.field(1630usize + offset)?.into_u8()?, + r#unknown1631: row.field(1631usize + offset)?.into_u8()?, + r#unknown1632: row.field(1632usize + offset)?.into_u8()?, + r#unknown1633: row.field(1633usize + offset)?.into_u8()?, + r#unknown1634: row.field(1634usize + offset)?.into_u8()?, + r#unknown1635: row.field(1635usize + offset)?.into_u8()?, + r#unknown1636: row.field(1636usize + offset)?.into_u8()?, + r#unknown1637: row.field(1637usize + offset)?.into_u8()?, + r#unknown1638: row.field(1638usize + offset)?.into_u8()?, + r#unknown1639: row.field(1639usize + offset)?.into_u8()?, + r#unknown1640: row.field(1640usize + offset)?.into_u8()?, + r#unknown1641: row.field(1641usize + offset)?.into_u8()?, + r#unknown1642: row.field(1642usize + offset)?.into_u8()?, + r#unknown1643: row.field(1643usize + offset)?.into_u8()?, + r#unknown1644: row.field(1644usize + offset)?.into_u8()?, + r#unknown1645: row.field(1645usize + offset)?.into_u8()?, + r#unknown1646: row.field(1646usize + offset)?.into_u8()?, + r#unknown1647: row.field(1647usize + offset)?.into_u8()?, + r#unknown1648: row.field(1648usize + offset)?.into_u8()?, + r#unknown1649: row.field(1649usize + offset)?.into_u8()?, + r#unknown1650: row.field(1650usize + offset)?.into_u8()?, + r#unknown1651: row.field(1651usize + offset)?.into_u8()?, + r#unknown1652: row.field(1652usize + offset)?.into_u8()?, + r#unknown1653: row.field(1653usize + offset)?.into_u8()?, + r#unknown1654: row.field(1654usize + offset)?.into_u8()?, + r#unknown1655: row.field(1655usize + offset)?.into_u8()?, + r#unknown1656: row.field(1656usize + offset)?.into_u8()?, + r#unknown1657: row.field(1657usize + offset)?.into_u8()?, + r#unknown1658: row.field(1658usize + offset)?.into_u8()?, + r#unknown1659: row.field(1659usize + offset)?.into_u8()?, + r#unknown1660: row.field(1660usize + offset)?.into_u8()?, + r#unknown1661: row.field(1661usize + offset)?.into_u8()?, + r#unknown1662: row.field(1662usize + offset)?.into_u8()?, + r#unknown1663: row.field(1663usize + offset)?.into_u8()?, + r#unknown1664: row.field(1664usize + offset)?.into_u8()?, + r#unknown1665: row.field(1665usize + offset)?.into_u8()?, + r#unknown1666: row.field(1666usize + offset)?.into_u8()?, + r#unknown1667: row.field(1667usize + offset)?.into_u8()?, + r#unknown1668: row.field(1668usize + offset)?.into_u8()?, + r#unknown1669: row.field(1669usize + offset)?.into_u8()?, + r#unknown1670: row.field(1670usize + offset)?.into_u8()?, + r#unknown1671: row.field(1671usize + offset)?.into_u8()?, + r#unknown1672: row.field(1672usize + offset)?.into_u8()?, + r#unknown1673: row.field(1673usize + offset)?.into_u8()?, + r#unknown1674: row.field(1674usize + offset)?.into_u8()?, + r#unknown1675: row.field(1675usize + offset)?.into_u8()?, + r#unknown1676: row.field(1676usize + offset)?.into_u8()?, + r#unknown1677: row.field(1677usize + offset)?.into_u8()?, + r#unknown1678: row.field(1678usize + offset)?.into_u8()?, + r#unknown1679: row.field(1679usize + offset)?.into_u8()?, + r#unknown1680: row.field(1680usize + offset)?.into_u8()?, + r#unknown1681: row.field(1681usize + offset)?.into_i32()?, + r#unknown1682: row.field(1682usize + offset)?.into_i32()?, + r#unknown1683: row.field(1683usize + offset)?.into_i32()?, + r#unknown1684: row.field(1684usize + offset)?.into_i32()?, + r#unknown1685: row.field(1685usize + offset)?.into_i32()?, + r#unknown1686: row.field(1686usize + offset)?.into_i32()?, + r#unknown1687: row.field(1687usize + offset)?.into_i32()?, + r#unknown1688: row.field(1688usize + offset)?.into_i32()?, + r#unknown1689: row.field(1689usize + offset)?.into_i32()?, + r#unknown1690: row.field(1690usize + offset)?.into_i32()?, + r#unknown1691: row.field(1691usize + offset)?.into_i32()?, + r#unknown1692: row.field(1692usize + offset)?.into_i32()?, + r#unknown1693: row.field(1693usize + offset)?.into_i32()?, + r#unknown1694: row.field(1694usize + offset)?.into_i32()?, + r#unknown1695: row.field(1695usize + offset)?.into_i32()?, + r#unknown1696: row.field(1696usize + offset)?.into_i32()?, + r#unknown1697: row.field(1697usize + offset)?.into_i32()?, + r#unknown1698: row.field(1698usize + offset)?.into_i32()?, + r#unknown1699: row.field(1699usize + offset)?.into_i32()?, + r#unknown1700: row.field(1700usize + offset)?.into_i32()?, + r#unknown1701: row.field(1701usize + offset)?.into_i32()?, + r#unknown1702: row.field(1702usize + offset)?.into_i32()?, + r#unknown1703: row.field(1703usize + offset)?.into_i32()?, + r#unknown1704: row.field(1704usize + offset)?.into_i32()?, + r#unknown1705: row.field(1705usize + offset)?.into_i32()?, + r#unknown1706: row.field(1706usize + offset)?.into_i32()?, + r#unknown1707: row.field(1707usize + offset)?.into_i32()?, + r#unknown1708: row.field(1708usize + offset)?.into_i32()?, + r#unknown1709: row.field(1709usize + offset)?.into_i32()?, + r#unknown1710: row.field(1710usize + offset)?.into_i32()?, + r#unknown1711: row.field(1711usize + offset)?.into_i32()?, + r#unknown1712: row.field(1712usize + offset)?.into_i32()?, + r#unknown1713: row.field(1713usize + offset)?.into_i32()?, + r#unknown1714: row.field(1714usize + offset)?.into_i32()?, + r#unknown1715: row.field(1715usize + offset)?.into_i32()?, + r#unknown1716: row.field(1716usize + offset)?.into_i32()?, + r#unknown1717: row.field(1717usize + offset)?.into_i32()?, + r#unknown1718: row.field(1718usize + offset)?.into_i32()?, + r#unknown1719: row.field(1719usize + offset)?.into_i32()?, + r#unknown1720: row.field(1720usize + offset)?.into_i32()?, + r#unknown1721: row.field(1721usize + offset)?.into_i32()?, + r#unknown1722: row.field(1722usize + offset)?.into_i32()?, + r#unknown1723: row.field(1723usize + offset)?.into_i32()?, + r#unknown1724: row.field(1724usize + offset)?.into_i32()?, + r#unknown1725: row.field(1725usize + offset)?.into_i32()?, + r#unknown1726: row.field(1726usize + offset)?.into_i32()?, + r#unknown1727: row.field(1727usize + offset)?.into_i32()?, + r#unknown1728: row.field(1728usize + offset)?.into_i32()?, + r#unknown1729: row.field(1729usize + offset)?.into_i32()?, + r#unknown1730: row.field(1730usize + offset)?.into_i32()?, + r#unknown1731: row.field(1731usize + offset)?.into_i32()?, + r#unknown1732: row.field(1732usize + offset)?.into_i32()?, + r#unknown1733: row.field(1733usize + offset)?.into_i32()?, + r#unknown1734: row.field(1734usize + offset)?.into_i32()?, + r#unknown1735: row.field(1735usize + offset)?.into_i32()?, + r#unknown1736: row.field(1736usize + offset)?.into_i32()?, + r#unknown1737: row.field(1737usize + offset)?.into_i32()?, + r#unknown1738: row.field(1738usize + offset)?.into_i32()?, + r#unknown1739: row.field(1739usize + offset)?.into_i32()?, + r#unknown1740: row.field(1740usize + offset)?.into_i32()?, + r#achievement_unlock: read_array( + offset, + 60usize, + 1usize, + |offset| { Result::Ok(row.field(1741usize + offset)?.into_i32()?) }, + )?, + r#unknown1801: row.field(1801usize + offset)?.into_u8()?, + r#unknown1802: row.field(1802usize + offset)?.into_u8()?, + r#unknown1803: row.field(1803usize + offset)?.into_u8()?, + r#unknown1804: row.field(1804usize + offset)?.into_u8()?, + r#unknown1805: row.field(1805usize + offset)?.into_u8()?, + r#unknown1806: row.field(1806usize + offset)?.into_u8()?, + r#unknown1807: row.field(1807usize + offset)?.into_u8()?, + r#unknown1808: row.field(1808usize + offset)?.into_u8()?, + r#unknown1809: row.field(1809usize + offset)?.into_u8()?, + r#unknown1810: row.field(1810usize + offset)?.into_u8()?, + r#unknown1811: row.field(1811usize + offset)?.into_u8()?, + r#unknown1812: row.field(1812usize + offset)?.into_u8()?, + r#unknown1813: row.field(1813usize + offset)?.into_u8()?, + r#unknown1814: row.field(1814usize + offset)?.into_u8()?, + r#unknown1815: row.field(1815usize + offset)?.into_u8()?, + r#unknown1816: row.field(1816usize + offset)?.into_u8()?, + r#unknown1817: row.field(1817usize + offset)?.into_u8()?, + r#unknown1818: row.field(1818usize + offset)?.into_u8()?, + r#unknown1819: row.field(1819usize + offset)?.into_u8()?, + r#unknown1820: row.field(1820usize + offset)?.into_u8()?, + r#unknown1821: row.field(1821usize + offset)?.into_u8()?, + r#unknown1822: row.field(1822usize + offset)?.into_u8()?, + r#unknown1823: row.field(1823usize + offset)?.into_u8()?, + r#unknown1824: row.field(1824usize + offset)?.into_u8()?, + r#unknown1825: row.field(1825usize + offset)?.into_u8()?, + r#unknown1826: row.field(1826usize + offset)?.into_u8()?, + r#unknown1827: row.field(1827usize + offset)?.into_u8()?, + r#unknown1828: row.field(1828usize + offset)?.into_u8()?, + r#unknown1829: row.field(1829usize + offset)?.into_u8()?, + r#unknown1830: row.field(1830usize + offset)?.into_u8()?, + r#unknown1831: row.field(1831usize + offset)?.into_u8()?, + r#unknown1832: row.field(1832usize + offset)?.into_u8()?, + r#unknown1833: row.field(1833usize + offset)?.into_u8()?, + r#unknown1834: row.field(1834usize + offset)?.into_u8()?, + r#unknown1835: row.field(1835usize + offset)?.into_u8()?, + r#unknown1836: row.field(1836usize + offset)?.into_u8()?, + r#unknown1837: row.field(1837usize + offset)?.into_u8()?, + r#unknown1838: row.field(1838usize + offset)?.into_u8()?, + r#unknown1839: row.field(1839usize + offset)?.into_u8()?, + r#unknown1840: row.field(1840usize + offset)?.into_u8()?, + r#unknown1841: row.field(1841usize + offset)?.into_u8()?, + r#unknown1842: row.field(1842usize + offset)?.into_u8()?, + r#unknown1843: row.field(1843usize + offset)?.into_u8()?, + r#unknown1844: row.field(1844usize + offset)?.into_u8()?, + r#unknown1845: row.field(1845usize + offset)?.into_u8()?, + r#unknown1846: row.field(1846usize + offset)?.into_u8()?, + r#unknown1847: row.field(1847usize + offset)?.into_u8()?, + r#unknown1848: row.field(1848usize + offset)?.into_u8()?, + r#unknown1849: row.field(1849usize + offset)?.into_u8()?, + r#unknown1850: row.field(1850usize + offset)?.into_u8()?, + r#unknown1851: row.field(1851usize + offset)?.into_u8()?, + r#unknown1852: row.field(1852usize + offset)?.into_u8()?, + r#unknown1853: row.field(1853usize + offset)?.into_u8()?, + r#unknown1854: row.field(1854usize + offset)?.into_u8()?, + r#unknown1855: row.field(1855usize + offset)?.into_u8()?, + r#unknown1856: row.field(1856usize + offset)?.into_u8()?, + r#unknown1857: row.field(1857usize + offset)?.into_u8()?, + r#unknown1858: row.field(1858usize + offset)?.into_u8()?, + r#unknown1859: row.field(1859usize + offset)?.into_u8()?, + r#unknown1860: row.field(1860usize + offset)?.into_u8()?, + r#unknown1861: row.field(1861usize + offset)?.into_i32()?, + r#unknown1862: row.field(1862usize + offset)?.into_i32()?, + r#unknown1863: row.field(1863usize + offset)?.into_i32()?, + r#unknown1864: row.field(1864usize + offset)?.into_i32()?, + r#unknown1865: row.field(1865usize + offset)?.into_i32()?, + r#unknown1866: row.field(1866usize + offset)?.into_i32()?, + r#unknown1867: row.field(1867usize + offset)?.into_i32()?, + r#unknown1868: row.field(1868usize + offset)?.into_i32()?, + r#unknown1869: row.field(1869usize + offset)?.into_i32()?, + r#unknown1870: row.field(1870usize + offset)?.into_i32()?, + r#unknown1871: row.field(1871usize + offset)?.into_i32()?, + r#unknown1872: row.field(1872usize + offset)?.into_i32()?, + r#unknown1873: row.field(1873usize + offset)?.into_i32()?, + r#unknown1874: row.field(1874usize + offset)?.into_i32()?, + r#unknown1875: row.field(1875usize + offset)?.into_i32()?, + r#unknown1876: row.field(1876usize + offset)?.into_i32()?, + r#unknown1877: row.field(1877usize + offset)?.into_i32()?, + r#unknown1878: row.field(1878usize + offset)?.into_i32()?, + r#unknown1879: row.field(1879usize + offset)?.into_i32()?, + r#unknown1880: row.field(1880usize + offset)?.into_i32()?, + r#unknown1881: row.field(1881usize + offset)?.into_i32()?, + r#unknown1882: row.field(1882usize + offset)?.into_i32()?, + r#unknown1883: row.field(1883usize + offset)?.into_i32()?, + r#unknown1884: row.field(1884usize + offset)?.into_i32()?, + r#unknown1885: row.field(1885usize + offset)?.into_i32()?, + r#unknown1886: row.field(1886usize + offset)?.into_i32()?, + r#unknown1887: row.field(1887usize + offset)?.into_i32()?, + r#unknown1888: row.field(1888usize + offset)?.into_i32()?, + r#unknown1889: row.field(1889usize + offset)?.into_i32()?, + r#unknown1890: row.field(1890usize + offset)?.into_i32()?, + r#unknown1891: row.field(1891usize + offset)?.into_i32()?, + r#unknown1892: row.field(1892usize + offset)?.into_i32()?, + r#unknown1893: row.field(1893usize + offset)?.into_i32()?, + r#unknown1894: row.field(1894usize + offset)?.into_i32()?, + r#unknown1895: row.field(1895usize + offset)?.into_i32()?, + r#unknown1896: row.field(1896usize + offset)?.into_i32()?, + r#unknown1897: row.field(1897usize + offset)?.into_i32()?, + r#unknown1898: row.field(1898usize + offset)?.into_i32()?, + r#unknown1899: row.field(1899usize + offset)?.into_i32()?, + r#unknown1900: row.field(1900usize + offset)?.into_i32()?, + r#unknown1901: row.field(1901usize + offset)?.into_i32()?, + r#unknown1902: row.field(1902usize + offset)?.into_i32()?, + r#unknown1903: row.field(1903usize + offset)?.into_i32()?, + r#unknown1904: row.field(1904usize + offset)?.into_i32()?, + r#unknown1905: row.field(1905usize + offset)?.into_i32()?, + r#unknown1906: row.field(1906usize + offset)?.into_i32()?, + r#unknown1907: row.field(1907usize + offset)?.into_i32()?, + r#unknown1908: row.field(1908usize + offset)?.into_i32()?, + r#unknown1909: row.field(1909usize + offset)?.into_i32()?, + r#unknown1910: row.field(1910usize + offset)?.into_i32()?, + r#unknown1911: row.field(1911usize + offset)?.into_i32()?, + r#unknown1912: row.field(1912usize + offset)?.into_i32()?, + r#unknown1913: row.field(1913usize + offset)?.into_i32()?, + r#unknown1914: row.field(1914usize + offset)?.into_i32()?, + r#unknown1915: row.field(1915usize + offset)?.into_i32()?, + r#unknown1916: row.field(1916usize + offset)?.into_i32()?, + r#unknown1917: row.field(1917usize + offset)?.into_i32()?, + r#unknown1918: row.field(1918usize + offset)?.into_i32()?, + r#unknown1919: row.field(1919usize + offset)?.into_i32()?, + r#unknown1920: row.field(1920usize + offset)?.into_i32()?, + r#unknown1921: row.field(1921usize + offset)?.into_u8()?, + r#unknown1922: row.field(1922usize + offset)?.into_u8()?, + r#unknown1923: row.field(1923usize + offset)?.into_u8()?, + r#unknown1924: row.field(1924usize + offset)?.into_u8()?, + r#unknown1925: row.field(1925usize + offset)?.into_u8()?, + r#unknown1926: row.field(1926usize + offset)?.into_u8()?, + r#unknown1927: row.field(1927usize + offset)?.into_u8()?, + r#unknown1928: row.field(1928usize + offset)?.into_u8()?, + r#unknown1929: row.field(1929usize + offset)?.into_u8()?, + r#unknown1930: row.field(1930usize + offset)?.into_u8()?, + r#unknown1931: row.field(1931usize + offset)?.into_u8()?, + r#unknown1932: row.field(1932usize + offset)?.into_u8()?, + r#unknown1933: row.field(1933usize + offset)?.into_u8()?, + r#unknown1934: row.field(1934usize + offset)?.into_u8()?, + r#unknown1935: row.field(1935usize + offset)?.into_u8()?, + r#unknown1936: row.field(1936usize + offset)?.into_u8()?, + r#unknown1937: row.field(1937usize + offset)?.into_u8()?, + r#unknown1938: row.field(1938usize + offset)?.into_u8()?, + r#unknown1939: row.field(1939usize + offset)?.into_u8()?, + r#unknown1940: row.field(1940usize + offset)?.into_u8()?, + r#unknown1941: row.field(1941usize + offset)?.into_u8()?, + r#unknown1942: row.field(1942usize + offset)?.into_u8()?, + r#unknown1943: row.field(1943usize + offset)?.into_u8()?, + r#unknown1944: row.field(1944usize + offset)?.into_u8()?, + r#unknown1945: row.field(1945usize + offset)?.into_u8()?, + r#unknown1946: row.field(1946usize + offset)?.into_u8()?, + r#unknown1947: row.field(1947usize + offset)?.into_u8()?, + r#unknown1948: row.field(1948usize + offset)?.into_u8()?, + r#unknown1949: row.field(1949usize + offset)?.into_u8()?, + r#unknown1950: row.field(1950usize + offset)?.into_u8()?, + r#unknown1951: row.field(1951usize + offset)?.into_u8()?, + r#unknown1952: row.field(1952usize + offset)?.into_u8()?, + r#unknown1953: row.field(1953usize + offset)?.into_u8()?, + r#unknown1954: row.field(1954usize + offset)?.into_u8()?, + r#unknown1955: row.field(1955usize + offset)?.into_u8()?, + r#unknown1956: row.field(1956usize + offset)?.into_u8()?, + r#unknown1957: row.field(1957usize + offset)?.into_u8()?, + r#unknown1958: row.field(1958usize + offset)?.into_u8()?, + r#unknown1959: row.field(1959usize + offset)?.into_u8()?, + r#unknown1960: row.field(1960usize + offset)?.into_u8()?, + r#unknown1961: row.field(1961usize + offset)?.into_u8()?, + r#unknown1962: row.field(1962usize + offset)?.into_u8()?, + r#unknown1963: row.field(1963usize + offset)?.into_u8()?, + r#unknown1964: row.field(1964usize + offset)?.into_u8()?, + r#unknown1965: row.field(1965usize + offset)?.into_u8()?, + r#unknown1966: row.field(1966usize + offset)?.into_u8()?, + r#unknown1967: row.field(1967usize + offset)?.into_u8()?, + r#unknown1968: row.field(1968usize + offset)?.into_u8()?, + r#unknown1969: row.field(1969usize + offset)?.into_u8()?, + r#unknown1970: row.field(1970usize + offset)?.into_u8()?, + r#unknown1971: row.field(1971usize + offset)?.into_u8()?, + r#unknown1972: row.field(1972usize + offset)?.into_u8()?, + r#unknown1973: row.field(1973usize + offset)?.into_u8()?, + r#unknown1974: row.field(1974usize + offset)?.into_u8()?, + r#unknown1975: row.field(1975usize + offset)?.into_u8()?, + r#unknown1976: row.field(1976usize + offset)?.into_u8()?, + r#unknown1977: row.field(1977usize + offset)?.into_u8()?, + r#unknown1978: row.field(1978usize + offset)?.into_u8()?, + r#unknown1979: row.field(1979usize + offset)?.into_u8()?, + r#unknown1980: row.field(1980usize + offset)?.into_u8()?, r#patch_number: read_array( offset, 60usize, 1usize, - |offset| { Result::Ok(row.field(1441usize + offset)?.into_u16()?) }, + |offset| { Result::Ok(row.field(1981usize + offset)?.into_u16()?) }, )?, - r#use_currency_type: row.field(1501usize + offset)?.into_u8()?, - r#quest_unlock: row.field(1502usize + offset)?.into_u32()?, - r#complete_text: row.field(1503usize + offset)?.into_i32()?, - r#not_complete_text: row.field(1504usize + offset)?.into_i32()?, + r#use_currency_type: row.field(2041usize + offset)?.into_u8()?, + r#quest_unlock: row.field(2042usize + offset)?.into_u32()?, + r#complete_text: row.field(2043usize + offset)?.into_i32()?, + r#not_complete_text: row.field(2044usize + offset)?.into_i32()?, + r#unknown2045: row.field(2045usize + offset)?.into_u32()?, + r#unknown2046: row.field(2046usize + offset)?.into_bool()?, + r#unknown2047: row.field(2047usize + offset)?.into_u16()?, + r#unknown2048: row.field(2048usize + offset)?.into_u16()?, + r#unknown2049: row.field(2049usize + offset)?.into_u32()?, + r#unknown2050: row.field(2050usize + offset)?.into_bool()?, + r#unknown2051: row.field(2051usize + offset)?.into_bool()?, }) } } diff --git a/src/sheet/special_shop_item_category.rs b/src/sheet/special_shop_item_category.rs index 70216865..3491e4e7 100644 --- a/src/sheet/special_shop_item_category.rs +++ b/src/sheet/special_shop_item_category.rs @@ -1,8 +1,8 @@ -use crate::metadata::MetadataAdapter; 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 SpecialShopItemCategory { fn name() -> String { "SpecialShopItemCategory".to_string() diff --git a/src/sheet/stain.rs b/src/sheet/stain.rs index 6924aa68..20919cca 100644 --- a/src/sheet/stain.rs +++ b/src/sheet/stain.rs @@ -1,7 +1,7 @@ use crate::error::PopulateError; -use ironworks::sestring::SeString; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; use std::result::Result; impl MetadataAdapter for Stain { fn name() -> String { @@ -18,6 +18,9 @@ pub struct Stain { pub r#shade: u8, pub r#sub_order: u8, pub r#name: SeString, + pub r#name2: SeString, + pub r#unknown5: bool, + pub r#unknown6: bool, } impl Stain { pub fn populate(row: &Row, offset: usize) -> Result { @@ -26,6 +29,9 @@ impl Stain { r#shade: row.field(1usize + offset)?.into_u8()?, r#sub_order: row.field(2usize + offset)?.into_u8()?, r#name: row.field(3usize + offset)?.into_string()?, + r#name2: row.field(4usize + offset)?.into_string()?, + r#unknown5: row.field(5usize + offset)?.into_bool()?, + r#unknown6: row.field(6usize + offset)?.into_bool()?, }) } } diff --git a/src/sheet/stain_transient.rs b/src/sheet/stain_transient.rs index eb95ec22..db7475df 100644 --- a/src/sheet/stain_transient.rs +++ b/src/sheet/stain_transient.rs @@ -1,7 +1,7 @@ use crate::error::PopulateError; -use std::result::Result; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for StainTransient { fn name() -> String { "StainTransient".to_string() diff --git a/src/sheet/stance_change.rs b/src/sheet/stance_change.rs index cb09413c..7e46f44e 100644 --- a/src/sheet/stance_change.rs +++ b/src/sheet/stance_change.rs @@ -1,9 +1,9 @@ -use std::result::Result; use crate::error::PopulateError; -use std::vec::Vec; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; use crate::utility::read_array; +use ironworks::excel::Row; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for StanceChange { fn name() -> String { "StanceChange".to_string() @@ -17,6 +17,8 @@ impl MetadataAdapter for StanceChange { pub struct StanceChange { pub r#unknown0: u16, pub r#action: Vec, + pub r#unknown3: u16, + pub r#unknown4: f32, } impl StanceChange { pub fn populate(row: &Row, offset: usize) -> Result { @@ -28,6 +30,8 @@ impl StanceChange { 1usize, |offset| { Result::Ok(row.field(1usize + offset)?.into_u16()?) }, )?, + r#unknown3: row.field(3usize + offset)?.into_u16()?, + r#unknown4: row.field(4usize + offset)?.into_f32()?, }) } } diff --git a/src/sheet/status.rs b/src/sheet/status.rs index 428c9e0e..56422404 100644 --- a/src/sheet/status.rs +++ b/src/sheet/status.rs @@ -1,7 +1,7 @@ -use ironworks::sestring::SeString; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use ironworks::sestring::SeString; use std::result::Result; impl MetadataAdapter for Status { fn name() -> String { @@ -16,11 +16,11 @@ impl MetadataAdapter for Status { pub struct Status { pub r#name: SeString, pub r#description: SeString, - pub r#icon: u16, + pub r#icon: u32, pub r#unknown3: u8, pub r#max_stacks: u8, - pub r#unknown5: u8, - pub r#category: u8, + pub r#class_job_category: u8, + pub r#status_category: u8, pub r#hit_effect: u8, pub r#vfx: u16, pub r#lock_movement: bool, @@ -28,31 +28,39 @@ pub struct Status { pub r#lock_actions: bool, pub r#lock_control: bool, pub r#transfiguration: bool, - pub r#unknown14: bool, + pub r#is_gaze: bool, pub r#can_dispel: bool, pub r#inflicted_by_actor: bool, pub r#is_permanent: bool, pub r#party_list_priority: u8, - pub r#unknown19: u8, + pub r#can_increase_rewards: u8, pub r#unknown20: bool, pub r#unknown21: bool, - pub r#unknown22: i16, - pub r#unknown23: u8, - pub r#unknown24: bool, + pub r#param_modifier: i32, + pub r#param_effect: u8, + pub r#can_status_off: bool, pub r#log: u16, pub r#is_fc_buff: bool, + pub r#unknown27: i8, pub r#invisibility: bool, + pub r#target_type: u8, + pub r#flags: u8, + pub r#unknown31: u8, + pub r#unknown32: bool, + pub r#unknown33: bool, + pub r#unknown34: bool, + pub r#unknown35: u8, } impl Status { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#name: row.field(0usize + offset)?.into_string()?, r#description: row.field(1usize + offset)?.into_string()?, - r#icon: row.field(2usize + offset)?.into_u16()?, + r#icon: row.field(2usize + offset)?.into_u32()?, r#unknown3: row.field(3usize + offset)?.into_u8()?, r#max_stacks: row.field(4usize + offset)?.into_u8()?, - r#unknown5: row.field(5usize + offset)?.into_u8()?, - r#category: row.field(6usize + offset)?.into_u8()?, + r#class_job_category: row.field(5usize + offset)?.into_u8()?, + r#status_category: row.field(6usize + offset)?.into_u8()?, r#hit_effect: row.field(7usize + offset)?.into_u8()?, r#vfx: row.field(8usize + offset)?.into_u16()?, r#lock_movement: row.field(9usize + offset)?.into_bool()?, @@ -60,20 +68,28 @@ impl Status { r#lock_actions: row.field(11usize + offset)?.into_bool()?, r#lock_control: row.field(12usize + offset)?.into_bool()?, r#transfiguration: row.field(13usize + offset)?.into_bool()?, - r#unknown14: row.field(14usize + offset)?.into_bool()?, + r#is_gaze: row.field(14usize + offset)?.into_bool()?, r#can_dispel: row.field(15usize + offset)?.into_bool()?, r#inflicted_by_actor: row.field(16usize + offset)?.into_bool()?, r#is_permanent: row.field(17usize + offset)?.into_bool()?, r#party_list_priority: row.field(18usize + offset)?.into_u8()?, - r#unknown19: row.field(19usize + offset)?.into_u8()?, + r#can_increase_rewards: row.field(19usize + offset)?.into_u8()?, r#unknown20: row.field(20usize + offset)?.into_bool()?, r#unknown21: row.field(21usize + offset)?.into_bool()?, - r#unknown22: row.field(22usize + offset)?.into_i16()?, - r#unknown23: row.field(23usize + offset)?.into_u8()?, - r#unknown24: row.field(24usize + offset)?.into_bool()?, + r#param_modifier: row.field(22usize + offset)?.into_i32()?, + r#param_effect: row.field(23usize + offset)?.into_u8()?, + r#can_status_off: row.field(24usize + offset)?.into_bool()?, r#log: row.field(25usize + offset)?.into_u16()?, r#is_fc_buff: row.field(26usize + offset)?.into_bool()?, - r#invisibility: row.field(27usize + offset)?.into_bool()?, + r#unknown27: row.field(27usize + offset)?.into_i8()?, + r#invisibility: row.field(28usize + offset)?.into_bool()?, + r#target_type: row.field(29usize + offset)?.into_u8()?, + r#flags: row.field(30usize + offset)?.into_u8()?, + r#unknown31: row.field(31usize + offset)?.into_u8()?, + r#unknown32: row.field(32usize + offset)?.into_bool()?, + r#unknown33: row.field(33usize + offset)?.into_bool()?, + r#unknown34: row.field(34usize + offset)?.into_bool()?, + r#unknown35: row.field(35usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/status_hit_effect.rs b/src/sheet/status_hit_effect.rs index 270d72ef..e73f3405 100644 --- a/src/sheet/status_hit_effect.rs +++ b/src/sheet/status_hit_effect.rs @@ -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 StatusHitEffect { fn name() -> String { "StatusHitEffect".to_string() diff --git a/src/sheet/status_loop_vfx.rs b/src/sheet/status_loop_vfx.rs index 075ebe45..6743d8af 100644 --- a/src/sheet/status_loop_vfx.rs +++ b/src/sheet/status_loop_vfx.rs @@ -1,7 +1,7 @@ -use std::result::Result; -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 StatusLoopVFX { fn name() -> String { "StatusLoopVFX".to_string() @@ -13,20 +13,32 @@ impl MetadataAdapter for StatusLoopVFX { } #[derive(Debug)] pub struct StatusLoopVFX { - pub r#vfx: u16, - pub r#unknown1: u8, - pub r#vfx2: u16, - pub r#unknown3: u8, - pub r#vfx3: u16, + pub r#friendly_vfx: u16, + pub r#stack_vfx1_trigger: u8, + pub r#stack_vfx1: u16, + pub r#stack_vfx2_trigger: u8, + pub r#stack_vfx2: u16, + pub r#hostile_vfx: u16, + pub r#unknown6: u8, + pub r#unknown7: u8, + pub r#unknown8: bool, + pub r#unknown9: bool, + pub r#unknown10: bool, } impl StatusLoopVFX { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { - r#vfx: row.field(0usize + offset)?.into_u16()?, - r#unknown1: row.field(1usize + offset)?.into_u8()?, - r#vfx2: row.field(2usize + offset)?.into_u16()?, - r#unknown3: row.field(3usize + offset)?.into_u8()?, - r#vfx3: row.field(4usize + offset)?.into_u16()?, + r#friendly_vfx: row.field(0usize + offset)?.into_u16()?, + r#stack_vfx1_trigger: row.field(1usize + offset)?.into_u8()?, + r#stack_vfx1: row.field(2usize + offset)?.into_u16()?, + r#stack_vfx2_trigger: row.field(3usize + offset)?.into_u8()?, + r#stack_vfx2: row.field(4usize + offset)?.into_u16()?, + r#hostile_vfx: row.field(5usize + offset)?.into_u16()?, + r#unknown6: row.field(6usize + offset)?.into_u8()?, + r#unknown7: row.field(7usize + offset)?.into_u8()?, + r#unknown8: row.field(8usize + offset)?.into_bool()?, + r#unknown9: row.field(9usize + offset)?.into_bool()?, + r#unknown10: row.field(10usize + offset)?.into_bool()?, }) } } diff --git a/src/sheet/story.rs b/src/sheet/story.rs index 697ba8e7..3a889f44 100644 --- a/src/sheet/story.rs +++ b/src/sheet/story.rs @@ -1,10 +1,10 @@ -use ironworks::sestring::SeString; -use crate::utility::read_array; use crate::error::PopulateError; -use std::vec::Vec; -use std::result::Result; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; +use crate::utility::read_array; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for Story { fn name() -> String { "Story".to_string() diff --git a/src/sheet/submarine_exploration.rs b/src/sheet/submarine_exploration.rs index 1482f858..87566420 100644 --- a/src/sheet/submarine_exploration.rs +++ b/src/sheet/submarine_exploration.rs @@ -1,8 +1,8 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; -use crate::error::PopulateError; -use std::result::Result; use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for SubmarineExploration { fn name() -> String { "SubmarineExploration".to_string() @@ -20,7 +20,7 @@ pub struct SubmarineExploration { pub r#y: i16, pub r#z: i16, pub r#map: u8, - pub r#passengers: bool, + pub r#starting_point: bool, pub r#stars: u8, pub r#rank_req: u8, pub r#ceruleum_tank_req: u8, @@ -37,7 +37,7 @@ impl SubmarineExploration { r#y: row.field(3usize + offset)?.into_i16()?, r#z: row.field(4usize + offset)?.into_i16()?, r#map: row.field(5usize + offset)?.into_u8()?, - r#passengers: row.field(6usize + offset)?.into_bool()?, + r#starting_point: row.field(6usize + offset)?.into_bool()?, r#stars: row.field(7usize + offset)?.into_u8()?, r#rank_req: row.field(8usize + offset)?.into_u8()?, r#ceruleum_tank_req: row.field(9usize + offset)?.into_u8()?, diff --git a/src/sheet/submarine_map.rs b/src/sheet/submarine_map.rs index bad7d0ba..4ef4c6e4 100644 --- a/src/sheet/submarine_map.rs +++ b/src/sheet/submarine_map.rs @@ -1,6 +1,6 @@ -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use ironworks::sestring::SeString; use std::result::Result; impl MetadataAdapter for SubmarineMap { diff --git a/src/sheet/submarine_part.rs b/src/sheet/submarine_part.rs index eb9a1788..ebb2e677 100644 --- a/src/sheet/submarine_part.rs +++ b/src/sheet/submarine_part.rs @@ -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 SubmarinePart { fn name() -> String { "SubmarinePart".to_string() diff --git a/src/sheet/submarine_rank.rs b/src/sheet/submarine_rank.rs index cc2ebff6..a67741ca 100644 --- a/src/sheet/submarine_rank.rs +++ b/src/sheet/submarine_rank.rs @@ -1,5 +1,5 @@ -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; use std::result::Result; impl MetadataAdapter for SubmarineRank { diff --git a/src/sheet/switch_talk.rs b/src/sheet/switch_talk.rs index 790dc1c8..9da2a682 100644 --- a/src/sheet/switch_talk.rs +++ b/src/sheet/switch_talk.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; use crate::error::PopulateError; -use std::result::Result; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for SwitchTalk { fn name() -> String { "SwitchTalk".to_string() @@ -12,9 +12,15 @@ impl MetadataAdapter for SwitchTalk { } } #[derive(Debug)] -pub struct SwitchTalk {} +pub struct SwitchTalk { + pub r#unknown0: u32, + pub r#unknown1: bool, +} impl SwitchTalk { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u32()?, + r#unknown1: row.field(1usize + offset)?.into_bool()?, + }) } } diff --git a/src/sheet/switch_talk_variation.rs b/src/sheet/switch_talk_variation.rs index 4689a21e..e051ba0e 100644 --- a/src/sheet/switch_talk_variation.rs +++ b/src/sheet/switch_talk_variation.rs @@ -1,7 +1,7 @@ use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for SwitchTalkVariation { fn name() -> String { "SwitchTalkVariation".to_string() diff --git a/src/sheet/telepo_relay.rs b/src/sheet/telepo_relay.rs index f4f65825..caaf8eb0 100644 --- a/src/sheet/telepo_relay.rs +++ b/src/sheet/telepo_relay.rs @@ -1,7 +1,9 @@ use crate::error::PopulateError; -use std::result::Result; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; +use crate::utility::read_array; +use ironworks::excel::Row; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for TelepoRelay { fn name() -> String { "TelepoRelay".to_string() @@ -12,9 +14,40 @@ impl MetadataAdapter for TelepoRelay { } } #[derive(Debug)] -pub struct TelepoRelay {} +pub struct TelepoRelay { + pub r#territory_type_entry: Vec, + pub r#territory_type_exit: Vec, + pub r#cost: Vec, + pub r#unknown24: u16, + pub r#unknown25: u16, + pub r#unknown26: u16, + pub r#unknown27: u32, +} impl TelepoRelay { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#territory_type_entry: read_array( + offset, + 8usize, + 1usize, + |offset| { Result::Ok(row.field(0usize + offset)?.into_u16()?) }, + )?, + r#territory_type_exit: read_array( + offset, + 8usize, + 1usize, + |offset| { Result::Ok(row.field(8usize + offset)?.into_u16()?) }, + )?, + r#cost: read_array( + offset, + 8usize, + 1usize, + |offset| { Result::Ok(row.field(16usize + offset)?.into_u16()?) }, + )?, + r#unknown24: row.field(24usize + offset)?.into_u16()?, + r#unknown25: row.field(25usize + offset)?.into_u16()?, + r#unknown26: row.field(26usize + offset)?.into_u16()?, + r#unknown27: row.field(27usize + offset)?.into_u32()?, + }) } } diff --git a/src/sheet/territory_type.rs b/src/sheet/territory_type.rs index ae1201c0..7717e3e6 100644 --- a/src/sheet/territory_type.rs +++ b/src/sheet/territory_type.rs @@ -1,8 +1,8 @@ -use std::result::Result; use crate::error::PopulateError; -use ironworks::sestring::SeString; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for TerritoryType { fn name() -> String { "TerritoryType".to_string() @@ -48,6 +48,16 @@ pub struct TerritoryType { pub r#unknown31: u8, pub r#unknown32: u8, pub r#mount_speed: u8, + pub r#unknown34: bool, + pub r#unknown35: bool, + pub r#unknown36: u8, + pub r#unknown37: bool, + pub r#unknown38: bool, + pub r#unknown39: bool, + pub r#unknown40: bool, + pub r#unknown41: bool, + pub r#unknown42: bool, + pub r#unknown43: u16, } impl TerritoryType { pub fn populate(row: &Row, offset: usize) -> Result { @@ -86,6 +96,16 @@ impl TerritoryType { r#unknown31: row.field(31usize + offset)?.into_u8()?, r#unknown32: row.field(32usize + offset)?.into_u8()?, r#mount_speed: row.field(33usize + offset)?.into_u8()?, + r#unknown34: row.field(34usize + offset)?.into_bool()?, + r#unknown35: row.field(35usize + offset)?.into_bool()?, + r#unknown36: row.field(36usize + offset)?.into_u8()?, + r#unknown37: row.field(37usize + offset)?.into_bool()?, + r#unknown38: row.field(38usize + offset)?.into_bool()?, + r#unknown39: row.field(39usize + offset)?.into_bool()?, + r#unknown40: row.field(40usize + offset)?.into_bool()?, + r#unknown41: row.field(41usize + offset)?.into_bool()?, + r#unknown42: row.field(42usize + offset)?.into_bool()?, + r#unknown43: row.field(43usize + offset)?.into_u16()?, }) } } diff --git a/src/sheet/territory_type_telepo.rs b/src/sheet/territory_type_telepo.rs index dcfdafa3..0903795a 100644 --- a/src/sheet/territory_type_telepo.rs +++ b/src/sheet/territory_type_telepo.rs @@ -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 TerritoryTypeTelepo { fn name() -> String { @@ -12,9 +12,19 @@ impl MetadataAdapter for TerritoryTypeTelepo { } } #[derive(Debug)] -pub struct TerritoryTypeTelepo {} +pub struct TerritoryTypeTelepo { + pub r#x: u16, + pub r#y: u16, + pub r#expansion: u16, + pub r#telepo_relay: u8, +} impl TerritoryTypeTelepo { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#x: row.field(0usize + offset)?.into_u16()?, + r#y: row.field(1usize + offset)?.into_u16()?, + r#expansion: row.field(2usize + offset)?.into_u16()?, + r#telepo_relay: row.field(3usize + offset)?.into_u8()?, + }) } } diff --git a/src/sheet/territory_type_transient.rs b/src/sheet/territory_type_transient.rs index 09020427..afbfcfc8 100644 --- a/src/sheet/territory_type_transient.rs +++ b/src/sheet/territory_type_transient.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use std::result::Result; -use crate::error::PopulateError; impl MetadataAdapter for TerritoryTypeTransient { fn name() -> String { "TerritoryTypeTransient".to_string() diff --git a/src/sheet/text_command.rs b/src/sheet/text_command.rs index 45297cee..2c6bf131 100644 --- a/src/sheet/text_command.rs +++ b/src/sheet/text_command.rs @@ -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; -use crate::metadata::MetadataAdapter; impl MetadataAdapter for TextCommand { fn name() -> String { "TextCommand".to_string() @@ -25,6 +25,7 @@ pub struct TextCommand { pub r#alias: SeString, pub r#short_alias: SeString, pub r#param: u16, + pub r#unknown11: u32, } impl TextCommand { pub fn populate(row: &Row, offset: usize) -> Result { @@ -40,6 +41,7 @@ impl TextCommand { r#alias: row.field(8usize + offset)?.into_string()?, r#short_alias: row.field(9usize + offset)?.into_string()?, r#param: row.field(10usize + offset)?.into_u16()?, + r#unknown11: row.field(11usize + offset)?.into_u32()?, }) } } diff --git a/src/sheet/text_command_param.rs b/src/sheet/text_command_param.rs index 4f0fc7dd..c55c1101 100644 --- a/src/sheet/text_command_param.rs +++ b/src/sheet/text_command_param.rs @@ -1,7 +1,7 @@ -use ironworks::sestring::SeString; -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; use std::result::Result; impl MetadataAdapter for TextCommandParam { fn name() -> String { diff --git a/src/sheet/tilt_param.rs b/src/sheet/tilt_param.rs new file mode 100644 index 00000000..76219c42 --- /dev/null +++ b/src/sheet/tilt_param.rs @@ -0,0 +1,34 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; +impl MetadataAdapter for TiltParam { + fn name() -> String { + "TiltParam".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(TiltParam::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct TiltParam { + pub r#rotation_origin_offset: u8, + pub r#max_angle: u8, + pub r#reverse_rotation: bool, + pub r#tilt_rate: f32, + pub r#unknown4: u8, + pub r#unknown5: u8, +} +impl TiltParam { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#rotation_origin_offset: row.field(0usize + offset)?.into_u8()?, + r#max_angle: row.field(1usize + offset)?.into_u8()?, + r#reverse_rotation: row.field(2usize + offset)?.into_bool()?, + r#tilt_rate: row.field(3usize + offset)?.into_f32()?, + r#unknown4: row.field(4usize + offset)?.into_u8()?, + r#unknown5: row.field(5usize + offset)?.into_u8()?, + }) + } +} diff --git a/src/sheet/title.rs b/src/sheet/title.rs index 05e51a39..1d8c45b1 100644 --- a/src/sheet/title.rs +++ b/src/sheet/title.rs @@ -1,7 +1,7 @@ -use ironworks::sestring::SeString; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use ironworks::sestring::SeString; use std::result::Result; impl MetadataAdapter for Title { fn name() -> String { diff --git a/src/sheet/tofu_edit_param.rs b/src/sheet/tofu_edit_param.rs new file mode 100644 index 00000000..29e12d80 --- /dev/null +++ b/src/sheet/tofu_edit_param.rs @@ -0,0 +1,33 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; +impl MetadataAdapter for TofuEditParam { + fn name() -> String { + "TofuEditParam".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(TofuEditParam::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct TofuEditParam { + pub r#unknown0: SeString, + pub r#unknown1: i16, + pub r#unknown2: i16, + pub r#unknown3: i16, + pub r#unknown4: bool, +} +impl TofuEditParam { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_string()?, + r#unknown1: row.field(1usize + offset)?.into_i16()?, + r#unknown2: row.field(2usize + offset)?.into_i16()?, + r#unknown3: row.field(3usize + offset)?.into_i16()?, + r#unknown4: row.field(4usize + offset)?.into_bool()?, + }) + } +} diff --git a/src/sheet/tofu_object.rs b/src/sheet/tofu_object.rs new file mode 100644 index 00000000..d782a346 --- /dev/null +++ b/src/sheet/tofu_object.rs @@ -0,0 +1,67 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; +impl MetadataAdapter for TofuObject { + fn name() -> String { + "TofuObject".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(TofuObject::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct TofuObject { + pub r#unknown0: bool, + pub r#unknown1: u8, + pub r#unknown2: i32, + pub r#unknown3: u16, + pub r#unknown4: u32, + pub r#unknown5: u32, + pub r#unknown6: u16, + pub r#unknown7: u16, + pub r#unknown8: SeString, + pub r#unknown9: i32, + pub r#unknown10: i32, + pub r#unknown11: i32, + pub r#unknown12: i32, + pub r#unknown13: i32, + pub r#unknown14: i16, + pub r#unknown15: i16, + pub r#unknown16: i16, + pub r#unknown17: i16, + pub r#unknown18: i16, + pub r#unknown19: bool, + pub r#unknown20: bool, + pub r#unknown21: i8, +} +impl TofuObject { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_bool()?, + r#unknown1: row.field(1usize + offset)?.into_u8()?, + r#unknown2: row.field(2usize + offset)?.into_i32()?, + r#unknown3: row.field(3usize + offset)?.into_u16()?, + r#unknown4: row.field(4usize + offset)?.into_u32()?, + r#unknown5: row.field(5usize + offset)?.into_u32()?, + r#unknown6: row.field(6usize + offset)?.into_u16()?, + r#unknown7: row.field(7usize + offset)?.into_u16()?, + r#unknown8: row.field(8usize + offset)?.into_string()?, + r#unknown9: row.field(9usize + offset)?.into_i32()?, + r#unknown10: row.field(10usize + offset)?.into_i32()?, + r#unknown11: row.field(11usize + offset)?.into_i32()?, + r#unknown12: row.field(12usize + offset)?.into_i32()?, + r#unknown13: row.field(13usize + offset)?.into_i32()?, + r#unknown14: row.field(14usize + offset)?.into_i16()?, + r#unknown15: row.field(15usize + offset)?.into_i16()?, + r#unknown16: row.field(16usize + offset)?.into_i16()?, + r#unknown17: row.field(17usize + offset)?.into_i16()?, + r#unknown18: row.field(18usize + offset)?.into_i16()?, + r#unknown19: row.field(19usize + offset)?.into_bool()?, + r#unknown20: row.field(20usize + offset)?.into_bool()?, + r#unknown21: row.field(21usize + offset)?.into_i8()?, + }) + } +} diff --git a/src/sheet/tofu_object_category.rs b/src/sheet/tofu_object_category.rs new file mode 100644 index 00000000..b331f0a5 --- /dev/null +++ b/src/sheet/tofu_object_category.rs @@ -0,0 +1,31 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; +impl MetadataAdapter for TofuObjectCategory { + fn name() -> String { + "TofuObjectCategory".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(TofuObjectCategory::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct TofuObjectCategory { + pub r#unknown0: bool, + pub r#unknown1: u16, + pub r#unknown2: u8, + pub r#unknown3: SeString, +} +impl TofuObjectCategory { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_bool()?, + r#unknown1: row.field(1usize + offset)?.into_u16()?, + r#unknown2: row.field(2usize + offset)?.into_u8()?, + r#unknown3: row.field(3usize + offset)?.into_string()?, + }) + } +} diff --git a/src/sheet/tofu_preset.rs b/src/sheet/tofu_preset.rs new file mode 100644 index 00000000..c174f827 --- /dev/null +++ b/src/sheet/tofu_preset.rs @@ -0,0 +1,51 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; +impl MetadataAdapter for TofuPreset { + fn name() -> String { + "TofuPreset".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(TofuPreset::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct TofuPreset { + pub r#unknown0: bool, + pub r#unknown1: i32, + pub r#unknown2: u16, + pub r#unknown3: SeString, + pub r#unknown4: i32, + pub r#unknown5: i32, + pub r#unknown6: i32, + pub r#unknown7: i32, + pub r#unknown8: i32, + pub r#unknown9: i32, + pub r#unknown10: i32, + pub r#unknown11: i32, + pub r#unknown12: i32, + pub r#unknown13: i32, +} +impl TofuPreset { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_bool()?, + r#unknown1: row.field(1usize + offset)?.into_i32()?, + r#unknown2: row.field(2usize + offset)?.into_u16()?, + r#unknown3: row.field(3usize + offset)?.into_string()?, + r#unknown4: row.field(4usize + offset)?.into_i32()?, + r#unknown5: row.field(5usize + offset)?.into_i32()?, + r#unknown6: row.field(6usize + offset)?.into_i32()?, + r#unknown7: row.field(7usize + offset)?.into_i32()?, + r#unknown8: row.field(8usize + offset)?.into_i32()?, + r#unknown9: row.field(9usize + offset)?.into_i32()?, + r#unknown10: row.field(10usize + offset)?.into_i32()?, + r#unknown11: row.field(11usize + offset)?.into_i32()?, + r#unknown12: row.field(12usize + offset)?.into_i32()?, + r#unknown13: row.field(13usize + offset)?.into_i32()?, + }) + } +} diff --git a/src/sheet/tofu_preset_category.rs b/src/sheet/tofu_preset_category.rs new file mode 100644 index 00000000..f4239294 --- /dev/null +++ b/src/sheet/tofu_preset_category.rs @@ -0,0 +1,29 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; +impl MetadataAdapter for TofuPresetCategory { + fn name() -> String { + "TofuPresetCategory".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(TofuPresetCategory::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct TofuPresetCategory { + pub r#unknown0: bool, + pub r#unknown1: u8, + pub r#unknown2: SeString, +} +impl TofuPresetCategory { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_bool()?, + r#unknown1: row.field(1usize + offset)?.into_u8()?, + r#unknown2: row.field(2usize + offset)?.into_string()?, + }) + } +} diff --git a/src/sheet/tofu_preset_object.rs b/src/sheet/tofu_preset_object.rs new file mode 100644 index 00000000..92b5b13e --- /dev/null +++ b/src/sheet/tofu_preset_object.rs @@ -0,0 +1,40 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; +impl MetadataAdapter for TofuPresetObject { + fn name() -> String { + "TofuPresetObject".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(TofuPresetObject::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct TofuPresetObject { + pub r#unknown0: i32, + pub r#unknown1: u16, + pub r#unknown2: u16, + pub r#unknown3: u8, + pub r#unknown4: i16, + pub r#unknown5: i8, + pub r#unknown6: u8, + pub r#unknown7: bool, + pub r#unknown8: bool, +} +impl TofuPresetObject { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_i32()?, + r#unknown1: row.field(1usize + offset)?.into_u16()?, + r#unknown2: row.field(2usize + offset)?.into_u16()?, + r#unknown3: row.field(3usize + offset)?.into_u8()?, + r#unknown4: row.field(4usize + offset)?.into_i16()?, + r#unknown5: row.field(5usize + offset)?.into_i8()?, + r#unknown6: row.field(6usize + offset)?.into_u8()?, + r#unknown7: row.field(7usize + offset)?.into_bool()?, + r#unknown8: row.field(8usize + offset)?.into_bool()?, + }) + } +} diff --git a/src/sheet/tomestones.rs b/src/sheet/tomestones.rs index dd9ce391..38e344c5 100644 --- a/src/sheet/tomestones.rs +++ b/src/sheet/tomestones.rs @@ -1,7 +1,7 @@ -use std::result::Result; -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for Tomestones { fn name() -> String { "Tomestones".to_string() diff --git a/src/sheet/tomestones_item.rs b/src/sheet/tomestones_item.rs index be6f8e5a..2e60b6a4 100644 --- a/src/sheet/tomestones_item.rs +++ b/src/sheet/tomestones_item.rs @@ -1,7 +1,7 @@ -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; -use std::result::Result; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for TomestonesItem { fn name() -> String { "TomestonesItem".to_string() diff --git a/src/sheet/topic_select.rs b/src/sheet/topic_select.rs index e60e478d..a66a8394 100644 --- a/src/sheet/topic_select.rs +++ b/src/sheet/topic_select.rs @@ -1,8 +1,8 @@ -use ironworks::sestring::SeString; -use ironworks::excel::Row; -use crate::utility::read_array; 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 std::vec::Vec; impl MetadataAdapter for TopicSelect { diff --git a/src/sheet/town.rs b/src/sheet/town.rs index bd5272b0..5f82903e 100644 --- a/src/sheet/town.rs +++ b/src/sheet/town.rs @@ -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::metadata::MetadataAdapter; -use crate::error::PopulateError; impl MetadataAdapter for Town { fn name() -> String { "Town".to_string() diff --git a/src/sheet/trait.rs b/src/sheet/trait.rs index a18a48d8..bb128b64 100644 --- a/src/sheet/trait.rs +++ b/src/sheet/trait.rs @@ -1,8 +1,8 @@ -use std::result::Result; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use ironworks::sestring::SeString; use ironworks::excel::Row; -use crate::error::PopulateError; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for Trait { fn name() -> String { "Trait".to_string() @@ -16,22 +16,28 @@ impl MetadataAdapter for Trait { pub struct Trait { pub r#name: SeString, pub r#icon: i32, - pub r#class_job: u8, + pub r#class_job: bool, + pub r#unknown3: u8, pub r#level: u8, - pub r#quest: u32, - pub r#value: i16, - pub r#class_job_category: u8, + pub r#quest: u8, + pub r#value: u32, + pub r#class_job_category: i16, + pub r#unknown8: u8, + pub r#unknown9: u8, } impl Trait { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#name: row.field(0usize + offset)?.into_string()?, r#icon: row.field(1usize + offset)?.into_i32()?, - r#class_job: row.field(2usize + offset)?.into_u8()?, - r#level: row.field(3usize + offset)?.into_u8()?, - r#quest: row.field(4usize + offset)?.into_u32()?, - r#value: row.field(5usize + offset)?.into_i16()?, - r#class_job_category: row.field(6usize + offset)?.into_u8()?, + r#class_job: row.field(2usize + offset)?.into_bool()?, + r#unknown3: row.field(3usize + offset)?.into_u8()?, + r#level: row.field(4usize + offset)?.into_u8()?, + r#quest: row.field(5usize + offset)?.into_u8()?, + r#value: row.field(6usize + offset)?.into_u32()?, + r#class_job_category: row.field(7usize + offset)?.into_i16()?, + r#unknown8: row.field(8usize + offset)?.into_u8()?, + r#unknown9: row.field(9usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/trait_recast.rs b/src/sheet/trait_recast.rs index e9dc38c3..dce22114 100644 --- a/src/sheet/trait_recast.rs +++ b/src/sheet/trait_recast.rs @@ -1,6 +1,6 @@ -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use std::result::Result; impl MetadataAdapter for TraitRecast { fn name() -> String { diff --git a/src/sheet/trait_transient.rs b/src/sheet/trait_transient.rs index 478f47d3..7b015951 100644 --- a/src/sheet/trait_transient.rs +++ b/src/sheet/trait_transient.rs @@ -1,8 +1,8 @@ use crate::error::PopulateError; -use std::result::Result; -use ironworks::sestring::SeString; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for TraitTransient { fn name() -> String { "TraitTransient".to_string() diff --git a/src/sheet/transformation.rs b/src/sheet/transformation.rs index 4703d4c1..b3ff01af 100644 --- a/src/sheet/transformation.rs +++ b/src/sheet/transformation.rs @@ -1,7 +1,7 @@ -use std::result::Result; -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 Transformation { fn name() -> String { "Transformation".to_string() @@ -50,6 +50,9 @@ pub struct Transformation { pub r#unknown34: i8, pub r#unknown35: i8, pub r#action7: u16, + pub r#unknown37: u8, + pub r#unknown38: bool, + pub r#unknown39: bool, } impl Transformation { pub fn populate(row: &Row, offset: usize) -> Result { @@ -91,6 +94,9 @@ impl Transformation { r#unknown34: row.field(34usize + offset)?.into_i8()?, r#unknown35: row.field(35usize + offset)?.into_i8()?, r#action7: row.field(36usize + offset)?.into_u16()?, + r#unknown37: row.field(37usize + offset)?.into_u8()?, + r#unknown38: row.field(38usize + offset)?.into_bool()?, + r#unknown39: row.field(39usize + offset)?.into_bool()?, }) } } diff --git a/src/sheet/treasure.rs b/src/sheet/treasure.rs index 794940df..43c01a00 100644 --- a/src/sheet/treasure.rs +++ b/src/sheet/treasure.rs @@ -1,8 +1,8 @@ -use ironworks::sestring::SeString; -use ironworks::excel::Row; +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 Treasure { fn name() -> String { "Treasure".to_string() @@ -22,7 +22,10 @@ pub struct Treasure { pub r#unknown5: i8, pub r#unknown6: i8, pub r#unknown7: i8, - pub r#item: u32, + pub r#sgb: u32, + pub r#unknown9: bool, + pub r#unknown10: bool, + pub r#unknown11: u8, } impl Treasure { pub fn populate(row: &Row, offset: usize) -> Result { @@ -35,7 +38,10 @@ impl Treasure { r#unknown5: row.field(5usize + offset)?.into_i8()?, r#unknown6: row.field(6usize + offset)?.into_i8()?, r#unknown7: row.field(7usize + offset)?.into_i8()?, - r#item: row.field(8usize + offset)?.into_u32()?, + r#sgb: row.field(8usize + offset)?.into_u32()?, + r#unknown9: row.field(9usize + offset)?.into_bool()?, + r#unknown10: row.field(10usize + offset)?.into_bool()?, + r#unknown11: row.field(11usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/treasure_hunt_rank.rs b/src/sheet/treasure_hunt_rank.rs index a820ec3a..e378fca2 100644 --- a/src/sheet/treasure_hunt_rank.rs +++ b/src/sheet/treasure_hunt_rank.rs @@ -1,7 +1,7 @@ -use std::result::Result; -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for TreasureHuntRank { fn name() -> String { "TreasureHuntRank".to_string() @@ -20,6 +20,8 @@ pub struct TreasureHuntRank { pub r#instance_map: i32, pub r#max_party_size: u8, pub r#treasure_hunt_texture: u8, + pub r#unknown7: u16, + pub r#unknown8: bool, } impl TreasureHuntRank { pub fn populate(row: &Row, offset: usize) -> Result { @@ -31,6 +33,8 @@ impl TreasureHuntRank { r#instance_map: row.field(4usize + offset)?.into_i32()?, r#max_party_size: row.field(5usize + offset)?.into_u8()?, r#treasure_hunt_texture: row.field(6usize + offset)?.into_u8()?, + r#unknown7: row.field(7usize + offset)?.into_u16()?, + r#unknown8: row.field(8usize + offset)?.into_bool()?, }) } } diff --git a/src/sheet/treasure_model.rs b/src/sheet/treasure_model.rs index f4bf87f1..855b9537 100644 --- a/src/sheet/treasure_model.rs +++ b/src/sheet/treasure_model.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; -use ironworks::sestring::SeString; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; use std::result::Result; impl MetadataAdapter for TreasureModel { fn name() -> String { diff --git a/src/sheet/treasure_spot.rs b/src/sheet/treasure_spot.rs index b839d798..24e868a6 100644 --- a/src/sheet/treasure_spot.rs +++ b/src/sheet/treasure_spot.rs @@ -1,5 +1,5 @@ -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; use std::result::Result; impl MetadataAdapter for TreasureSpot { diff --git a/src/sheet/tribe.rs b/src/sheet/tribe.rs index 953b1834..a9d8fb9a 100644 --- a/src/sheet/tribe.rs +++ b/src/sheet/tribe.rs @@ -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::metadata::MetadataAdapter; -use crate::error::PopulateError; impl MetadataAdapter for Tribe { fn name() -> String { "Tribe".to_string() diff --git a/src/sheet/triple_triad.rs b/src/sheet/triple_triad.rs index 37fe6d06..7bac1ed6 100644 --- a/src/sheet/triple_triad.rs +++ b/src/sheet/triple_triad.rs @@ -1,9 +1,9 @@ use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use crate::utility::read_array; use ironworks::excel::Row; -use std::vec::Vec; use std::result::Result; -use crate::utility::read_array; +use std::vec::Vec; impl MetadataAdapter for TripleTriad { fn name() -> String { "TripleTriad".to_string() diff --git a/src/sheet/triple_triad_card.rs b/src/sheet/triple_triad_card.rs index 2a89e854..67bf940b 100644 --- a/src/sheet/triple_triad_card.rs +++ b/src/sheet/triple_triad_card.rs @@ -1,8 +1,8 @@ -use std::result::Result; -use ironworks::sestring::SeString; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for TripleTriadCard { fn name() -> String { "TripleTriadCard".to_string() diff --git a/src/sheet/triple_triad_card_obtain.rs b/src/sheet/triple_triad_card_obtain.rs index f014e838..78caab26 100644 --- a/src/sheet/triple_triad_card_obtain.rs +++ b/src/sheet/triple_triad_card_obtain.rs @@ -1,7 +1,7 @@ use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for TripleTriadCardObtain { fn name() -> String { "TripleTriadCardObtain".to_string() @@ -12,9 +12,15 @@ impl MetadataAdapter for TripleTriadCardObtain { } } #[derive(Debug)] -pub struct TripleTriadCardObtain {} +pub struct TripleTriadCardObtain { + pub r#unknown0: u32, + pub r#unknown1: u32, +} impl TripleTriadCardObtain { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u32()?, + r#unknown1: row.field(1usize + offset)?.into_u32()?, + }) } } diff --git a/src/sheet/triple_triad_card_rarity.rs b/src/sheet/triple_triad_card_rarity.rs index 6d38051b..8766fd1c 100644 --- a/src/sheet/triple_triad_card_rarity.rs +++ b/src/sheet/triple_triad_card_rarity.rs @@ -1,7 +1,7 @@ -use std::result::Result; -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 TripleTriadCardRarity { fn name() -> String { "TripleTriadCardRarity".to_string() diff --git a/src/sheet/triple_triad_card_resident.rs b/src/sheet/triple_triad_card_resident.rs index 9768f999..d4da733a 100644 --- a/src/sheet/triple_triad_card_resident.rs +++ b/src/sheet/triple_triad_card_resident.rs @@ -1,7 +1,7 @@ -use std::result::Result; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for TripleTriadCardResident { fn name() -> String { "TripleTriadCardResident".to_string() diff --git a/src/sheet/triple_triad_card_type.rs b/src/sheet/triple_triad_card_type.rs index ee171a7d..aa70ebb5 100644 --- a/src/sheet/triple_triad_card_type.rs +++ b/src/sheet/triple_triad_card_type.rs @@ -1,8 +1,8 @@ -use ironworks::excel::Row; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use ironworks::sestring::SeString; use std::result::Result; -use crate::metadata::MetadataAdapter; impl MetadataAdapter for TripleTriadCardType { fn name() -> String { "TripleTriadCardType".to_string() diff --git a/src/sheet/triple_triad_competition.rs b/src/sheet/triple_triad_competition.rs index c4b15229..4405724d 100644 --- a/src/sheet/triple_triad_competition.rs +++ b/src/sheet/triple_triad_competition.rs @@ -1,8 +1,8 @@ -use ironworks::sestring::SeString; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use ironworks::sestring::SeString; use std::result::Result; -use crate::metadata::MetadataAdapter; impl MetadataAdapter for TripleTriadCompetition { fn name() -> String { "TripleTriadCompetition".to_string() diff --git a/src/sheet/triple_triad_resident.rs b/src/sheet/triple_triad_resident.rs index b13dd66a..750ecf15 100644 --- a/src/sheet/triple_triad_resident.rs +++ b/src/sheet/triple_triad_resident.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use std::result::Result; -use crate::error::PopulateError; impl MetadataAdapter for TripleTriadResident { fn name() -> String { "TripleTriadResident".to_string() diff --git a/src/sheet/triple_triad_rule.rs b/src/sheet/triple_triad_rule.rs index af918657..690be513 100644 --- a/src/sheet/triple_triad_rule.rs +++ b/src/sheet/triple_triad_rule.rs @@ -1,8 +1,8 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; -use crate::error::PopulateError; -use std::result::Result; use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for TripleTriadRule { fn name() -> String { "TripleTriadRule".to_string() @@ -16,12 +16,22 @@ impl MetadataAdapter for TripleTriadRule { pub struct TripleTriadRule { pub r#name: SeString, pub r#description: SeString, + pub r#unknown2: u8, + pub r#unknown3: u8, + pub r#unknown4: bool, + pub r#unknown5: u8, + pub r#unknown6: i32, } impl TripleTriadRule { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#name: row.field(0usize + offset)?.into_string()?, r#description: row.field(1usize + offset)?.into_string()?, + r#unknown2: row.field(2usize + offset)?.into_u8()?, + r#unknown3: row.field(3usize + offset)?.into_u8()?, + r#unknown4: row.field(4usize + offset)?.into_bool()?, + r#unknown5: row.field(5usize + offset)?.into_u8()?, + r#unknown6: row.field(6usize + offset)?.into_i32()?, }) } } diff --git a/src/sheet/tutorial.rs b/src/sheet/tutorial.rs index ec639056..555d1bc5 100644 --- a/src/sheet/tutorial.rs +++ b/src/sheet/tutorial.rs @@ -1,7 +1,7 @@ -use crate::metadata::MetadataAdapter; -use std::result::Result; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for Tutorial { fn name() -> String { "Tutorial".to_string() @@ -17,12 +17,14 @@ pub struct Tutorial { pub r#unknown1: u8, pub r#unknown2: u8, pub r#unknown3: u8, - pub r#exp: u32, + pub r#exp: u8, pub r#gil: u32, pub r#reward_tank: u32, pub r#reward_melee: u32, pub r#reward_ranged: u32, pub r#objective: u32, + pub r#unknown10: u32, + pub r#unknown11: u32, } impl Tutorial { pub fn populate(row: &Row, offset: usize) -> Result { @@ -31,12 +33,14 @@ impl Tutorial { r#unknown1: row.field(1usize + offset)?.into_u8()?, r#unknown2: row.field(2usize + offset)?.into_u8()?, r#unknown3: row.field(3usize + offset)?.into_u8()?, - r#exp: row.field(4usize + offset)?.into_u32()?, + r#exp: row.field(4usize + offset)?.into_u8()?, r#gil: row.field(5usize + offset)?.into_u32()?, r#reward_tank: row.field(6usize + offset)?.into_u32()?, r#reward_melee: row.field(7usize + offset)?.into_u32()?, r#reward_ranged: row.field(8usize + offset)?.into_u32()?, r#objective: row.field(9usize + offset)?.into_u32()?, + r#unknown10: row.field(10usize + offset)?.into_u32()?, + r#unknown11: row.field(11usize + offset)?.into_u32()?, }) } } diff --git a/src/sheet/tutorial_dps.rs b/src/sheet/tutorial_dps.rs index 8d01f540..7243aa32 100644 --- a/src/sheet/tutorial_dps.rs +++ b/src/sheet/tutorial_dps.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; -use std::result::Result; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for TutorialDPS { fn name() -> String { "TutorialDPS".to_string() @@ -14,11 +14,13 @@ impl MetadataAdapter for TutorialDPS { #[derive(Debug)] pub struct TutorialDPS { pub r#objective: u8, + pub r#unknown1: u32, } impl TutorialDPS { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#objective: row.field(0usize + offset)?.into_u8()?, + r#unknown1: row.field(1usize + offset)?.into_u32()?, }) } } diff --git a/src/sheet/tutorial_healer.rs b/src/sheet/tutorial_healer.rs index c1b94a33..18155123 100644 --- a/src/sheet/tutorial_healer.rs +++ b/src/sheet/tutorial_healer.rs @@ -1,7 +1,7 @@ use crate::error::PopulateError; -use std::result::Result; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for TutorialHealer { fn name() -> String { "TutorialHealer".to_string() @@ -14,11 +14,13 @@ impl MetadataAdapter for TutorialHealer { #[derive(Debug)] pub struct TutorialHealer { pub r#objective: u8, + pub r#unknown1: u32, } impl TutorialHealer { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#objective: row.field(0usize + offset)?.into_u8()?, + r#unknown1: row.field(1usize + offset)?.into_u32()?, }) } } diff --git a/src/sheet/tutorial_tank.rs b/src/sheet/tutorial_tank.rs index bc50e348..4a82532b 100644 --- a/src/sheet/tutorial_tank.rs +++ b/src/sheet/tutorial_tank.rs @@ -1,6 +1,6 @@ -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use std::result::Result; impl MetadataAdapter for TutorialTank { fn name() -> String { @@ -14,11 +14,13 @@ impl MetadataAdapter for TutorialTank { #[derive(Debug)] pub struct TutorialTank { pub r#objective: u8, + pub r#unknown1: u32, } impl TutorialTank { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#objective: row.field(0usize + offset)?.into_u8()?, + r#unknown1: row.field(1usize + offset)?.into_u32()?, }) } } diff --git a/src/sheet/uds_event.rs b/src/sheet/uds_event.rs index e2f18d5b..eb6cb73b 100644 --- a/src/sheet/uds_event.rs +++ b/src/sheet/uds_event.rs @@ -1,9 +1,9 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; -use ironworks::sestring::SeString; use crate::utility::read_array; use ironworks::excel::Row; -use crate::error::PopulateError; +use ironworks::sestring::SeString; +use std::result::Result; use std::vec::Vec; impl MetadataAdapter for UDS_Event { fn name() -> String { diff --git a/src/sheet/uds_property.rs b/src/sheet/uds_property.rs index e3f6c35f..1e75ac37 100644 --- a/src/sheet/uds_property.rs +++ b/src/sheet/uds_property.rs @@ -1,8 +1,8 @@ -use ironworks::sestring::SeString; +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 UDS_Property { fn name() -> String { "UDS_Property".to_string() diff --git a/src/sheet/ui_color.rs b/src/sheet/ui_color.rs index 84fd1552..9a0206ee 100644 --- a/src/sheet/ui_color.rs +++ b/src/sheet/ui_color.rs @@ -1,7 +1,7 @@ use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for UIColor { fn name() -> String { "UIColor".to_string() @@ -15,12 +15,24 @@ impl MetadataAdapter for UIColor { pub struct UIColor { pub r#ui_foreground: u32, pub r#ui_glow: u32, + pub r#unknown2: u32, + pub r#unknown3: u32, + pub r#unknown4: u32, + pub r#unknown5: u32, + pub r#unknown6: u32, + pub r#unknown7: u32, } impl UIColor { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#ui_foreground: row.field(0usize + offset)?.into_u32()?, r#ui_glow: row.field(1usize + offset)?.into_u32()?, + r#unknown2: row.field(2usize + offset)?.into_u32()?, + r#unknown3: row.field(3usize + offset)?.into_u32()?, + r#unknown4: row.field(4usize + offset)?.into_u32()?, + r#unknown5: row.field(5usize + offset)?.into_u32()?, + r#unknown6: row.field(6usize + offset)?.into_u32()?, + r#unknown7: row.field(7usize + offset)?.into_u32()?, }) } } diff --git a/src/sheet/ui_const.rs b/src/sheet/ui_const.rs index cf7f5f9b..74ed56f1 100644 --- a/src/sheet/ui_const.rs +++ b/src/sheet/ui_const.rs @@ -1,7 +1,7 @@ -use ironworks::excel::Row; use crate::error::PopulateError; -use std::result::Result; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for UIConst { fn name() -> String { "UIConst".to_string() @@ -12,9 +12,13 @@ impl MetadataAdapter for UIConst { } } #[derive(Debug)] -pub struct UIConst {} +pub struct UIConst { + pub r#unknown0: i32, +} impl UIConst { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_i32()?, + }) } } diff --git a/src/sheet/ui_level_lookup.rs b/src/sheet/ui_level_lookup.rs new file mode 100644 index 00000000..f4f8401c --- /dev/null +++ b/src/sheet/ui_level_lookup.rs @@ -0,0 +1,24 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; +impl MetadataAdapter for UILevelLookup { + fn name() -> String { + "UILevelLookup".to_string() + } + fn populate(row: &Row) -> Result { + let offset = 0; + Result::Ok(UILevelLookup::populate(row, offset)?) + } +} +#[derive(Debug)] +pub struct UILevelLookup { + pub r#unknown0: u32, +} +impl UILevelLookup { + pub fn populate(row: &Row, offset: usize) -> Result { + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u32()?, + }) + } +} diff --git a/src/sheet/vase_flower.rs b/src/sheet/vase_flower.rs index 2b4872d5..edc10dbd 100644 --- a/src/sheet/vase_flower.rs +++ b/src/sheet/vase_flower.rs @@ -1,7 +1,7 @@ -use std::result::Result; -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for VaseFlower { fn name() -> String { "VaseFlower".to_string() diff --git a/src/sheet/vfx.rs b/src/sheet/vfx.rs index 56f2b568..3ee4d2ce 100644 --- a/src/sheet/vfx.rs +++ b/src/sheet/vfx.rs @@ -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 ironworks::excel::Row; -use crate::metadata::MetadataAdapter; impl MetadataAdapter for VFX { fn name() -> String { "VFX".to_string() diff --git a/src/sheet/vvd_data.rs b/src/sheet/vvd_data.rs index e4a4bfd2..d591500a 100644 --- a/src/sheet/vvd_data.rs +++ b/src/sheet/vvd_data.rs @@ -1,7 +1,7 @@ -use std::result::Result; -use ironworks::excel::Row; use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for VVDData { fn name() -> String { "VVDData".to_string() @@ -12,9 +12,25 @@ impl MetadataAdapter for VVDData { } } #[derive(Debug)] -pub struct VVDData {} +pub struct VVDData { + pub r#unknown0: u8, + pub r#unknown1: u8, + pub r#unknown2: u32, + pub r#unknown3: u32, + pub r#unknown4: u32, + pub r#unknown5: u32, + pub r#unknown6: u8, +} impl VVDData { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u8()?, + r#unknown1: row.field(1usize + offset)?.into_u8()?, + r#unknown2: row.field(2usize + offset)?.into_u32()?, + r#unknown3: row.field(3usize + offset)?.into_u32()?, + r#unknown4: row.field(4usize + offset)?.into_u32()?, + r#unknown5: row.field(5usize + offset)?.into_u32()?, + r#unknown6: row.field(6usize + offset)?.into_u8()?, + }) } } diff --git a/src/sheet/vvd_notebook_contents.rs b/src/sheet/vvd_notebook_contents.rs index 9b4675bd..1203c801 100644 --- a/src/sheet/vvd_notebook_contents.rs +++ b/src/sheet/vvd_notebook_contents.rs @@ -1,7 +1,8 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; use ironworks::excel::Row; -use crate::error::PopulateError; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for VVDNotebookContents { fn name() -> String { "VVDNotebookContents".to_string() @@ -12,9 +13,19 @@ impl MetadataAdapter for VVDNotebookContents { } } #[derive(Debug)] -pub struct VVDNotebookContents {} +pub struct VVDNotebookContents { + pub r#icon: i32, + pub r#image: i32, + pub r#name: SeString, + pub r#description: SeString, +} impl VVDNotebookContents { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#icon: row.field(0usize + offset)?.into_i32()?, + r#image: row.field(1usize + offset)?.into_i32()?, + r#name: row.field(2usize + offset)?.into_string()?, + r#description: row.field(3usize + offset)?.into_string()?, + }) } } diff --git a/src/sheet/vvd_notebook_series.rs b/src/sheet/vvd_notebook_series.rs index ef2190a4..69f7124d 100644 --- a/src/sheet/vvd_notebook_series.rs +++ b/src/sheet/vvd_notebook_series.rs @@ -1,7 +1,10 @@ -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; -use std::result::Result; +use crate::metadata::MetadataAdapter; +use crate::utility::read_array; use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for VVDNotebookSeries { fn name() -> String { "VVDNotebookSeries".to_string() @@ -12,9 +15,22 @@ impl MetadataAdapter for VVDNotebookSeries { } } #[derive(Debug)] -pub struct VVDNotebookSeries {} +pub struct VVDNotebookSeries { + pub r#name: SeString, + pub r#contents: Vec, + pub r#unknown13: i32, +} impl VVDNotebookSeries { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#name: row.field(0usize + offset)?.into_string()?, + r#contents: read_array( + offset, + 12usize, + 1usize, + |offset| { Result::Ok(row.field(1usize + offset)?.into_i32()?) }, + )?, + r#unknown13: row.field(13usize + offset)?.into_i32()?, + }) } } diff --git a/src/sheet/vvd_route_data.rs b/src/sheet/vvd_route_data.rs index d409c38d..3408ef33 100644 --- a/src/sheet/vvd_route_data.rs +++ b/src/sheet/vvd_route_data.rs @@ -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 VVDRouteData { fn name() -> String { "VVDRouteData".to_string() @@ -12,9 +12,13 @@ impl MetadataAdapter for VVDRouteData { } } #[derive(Debug)] -pub struct VVDRouteData {} +pub struct VVDRouteData { + pub r#unknown0: u16, +} impl VVDRouteData { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#unknown0: row.field(0usize + offset)?.into_u16()?, + }) } } diff --git a/src/sheet/vvd_variant_action.rs b/src/sheet/vvd_variant_action.rs index adbc6584..3a36b6cb 100644 --- a/src/sheet/vvd_variant_action.rs +++ b/src/sheet/vvd_variant_action.rs @@ -1,7 +1,7 @@ use crate::error::PopulateError; -use std::result::Result; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for VVDVariantAction { fn name() -> String { "VVDVariantAction".to_string() @@ -12,9 +12,13 @@ impl MetadataAdapter for VVDVariantAction { } } #[derive(Debug)] -pub struct VVDVariantAction {} +pub struct VVDVariantAction { + pub r#action: u32, +} impl VVDVariantAction { pub fn populate(row: &Row, offset: usize) -> Result { - Result::Ok(Self {}) + Result::Ok(Self { + r#action: row.field(0usize + offset)?.into_u32()?, + }) } } diff --git a/src/sheet/warp.rs b/src/sheet/warp.rs index 0aebf3ef..35405e3d 100644 --- a/src/sheet/warp.rs +++ b/src/sheet/warp.rs @@ -1,8 +1,8 @@ -use std::result::Result; -use ironworks::excel::Row; -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for Warp { fn name() -> String { "Warp".to_string() diff --git a/src/sheet/warp_condition.rs b/src/sheet/warp_condition.rs index dcecc2c6..e3302d54 100644 --- a/src/sheet/warp_condition.rs +++ b/src/sheet/warp_condition.rs @@ -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 WarpCondition { fn name() -> String { "WarpCondition".to_string() @@ -17,7 +17,7 @@ pub struct WarpCondition { pub r#complete_param: u8, pub r#required_quest1: u32, pub r#required_quest2: u32, - pub r#d_required_quest3: u32, + pub r#required_quest3: u32, pub r#required_quest4: u32, pub r#quest_reward: u16, pub r#class_level: u16, @@ -29,7 +29,7 @@ impl WarpCondition { r#complete_param: row.field(1usize + offset)?.into_u8()?, r#required_quest1: row.field(2usize + offset)?.into_u32()?, r#required_quest2: row.field(3usize + offset)?.into_u32()?, - r#d_required_quest3: row.field(4usize + offset)?.into_u32()?, + r#required_quest3: row.field(4usize + offset)?.into_u32()?, r#required_quest4: row.field(5usize + offset)?.into_u32()?, r#quest_reward: row.field(6usize + offset)?.into_u16()?, r#class_level: row.field(7usize + offset)?.into_u16()?, diff --git a/src/sheet/warp_logic.rs b/src/sheet/warp_logic.rs index 22af6b00..61f7fd52 100644 --- a/src/sheet/warp_logic.rs +++ b/src/sheet/warp_logic.rs @@ -1,10 +1,10 @@ use crate::error::PopulateError; -use ironworks::sestring::SeString; +use crate::metadata::MetadataAdapter; use crate::utility::read_array; -use std::vec::Vec; use ironworks::excel::Row; +use ironworks::sestring::SeString; use std::result::Result; -use crate::metadata::MetadataAdapter; +use std::vec::Vec; impl MetadataAdapter for WarpLogic { fn name() -> String { "WarpLogic".to_string() diff --git a/src/sheet/weapon_timeline.rs b/src/sheet/weapon_timeline.rs index 5caf36e1..be603c7f 100644 --- a/src/sheet/weapon_timeline.rs +++ b/src/sheet/weapon_timeline.rs @@ -1,8 +1,8 @@ -use ironworks::sestring::SeString; -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 std::result::Result; impl MetadataAdapter for WeaponTimeline { fn name() -> String { "WeaponTimeline".to_string() @@ -16,12 +16,16 @@ impl MetadataAdapter for WeaponTimeline { pub struct WeaponTimeline { pub r#file: SeString, pub r#next_weapon_timeline: i16, + pub r#unknown2: bool, + pub r#unknown3: bool, } impl WeaponTimeline { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#file: row.field(0usize + offset)?.into_string()?, r#next_weapon_timeline: row.field(1usize + offset)?.into_i16()?, + r#unknown2: row.field(2usize + offset)?.into_bool()?, + r#unknown3: row.field(3usize + offset)?.into_bool()?, }) } } diff --git a/src/sheet/weather.rs b/src/sheet/weather.rs index 48584510..89e8592a 100644 --- a/src/sheet/weather.rs +++ b/src/sheet/weather.rs @@ -1,8 +1,8 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use std::result::Result; -use ironworks::sestring::SeString; use ironworks::excel::Row; -use crate::error::PopulateError; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for Weather { fn name() -> String { "Weather".to_string() @@ -17,6 +17,10 @@ pub struct Weather { pub r#icon: i32, pub r#name: SeString, pub r#description: SeString, + pub r#unknown3: SeString, + pub r#unknown4: SeString, + pub r#unknown5: SeString, + pub r#unknown6: SeString, } impl Weather { pub fn populate(row: &Row, offset: usize) -> Result { @@ -24,6 +28,10 @@ impl Weather { r#icon: row.field(0usize + offset)?.into_i32()?, r#name: row.field(1usize + offset)?.into_string()?, r#description: row.field(2usize + offset)?.into_string()?, + r#unknown3: row.field(3usize + offset)?.into_string()?, + r#unknown4: row.field(4usize + offset)?.into_string()?, + r#unknown5: row.field(5usize + offset)?.into_string()?, + r#unknown6: row.field(6usize + offset)?.into_string()?, }) } } diff --git a/src/sheet/weather_group.rs b/src/sheet/weather_group.rs index 7d0b021b..a17fe1d7 100644 --- a/src/sheet/weather_group.rs +++ b/src/sheet/weather_group.rs @@ -1,7 +1,7 @@ use crate::error::PopulateError; -use std::result::Result; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for WeatherGroup { fn name() -> String { "WeatherGroup".to_string() diff --git a/src/sheet/weather_rate.rs b/src/sheet/weather_rate.rs index 1b0cbd03..cc934749 100644 --- a/src/sheet/weather_rate.rs +++ b/src/sheet/weather_rate.rs @@ -1,8 +1,8 @@ -use std::result::Result; -use crate::utility::read_array; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; +use crate::utility::read_array; use ironworks::excel::Row; -use crate::error::PopulateError; +use std::result::Result; use std::vec::Vec; impl MetadataAdapter for WeatherRate { fn name() -> String { diff --git a/src/sheet/weather_report_replace.rs b/src/sheet/weather_report_replace.rs index 29ecb9fa..b92e3444 100644 --- a/src/sheet/weather_report_replace.rs +++ b/src/sheet/weather_report_replace.rs @@ -1,6 +1,6 @@ use crate::error::PopulateError; -use ironworks::excel::Row; use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; use std::result::Result; impl MetadataAdapter for WeatherReportReplace { fn name() -> String { diff --git a/src/sheet/web_guidance.rs b/src/sheet/web_guidance.rs index c068b8b7..da1f99ec 100644 --- a/src/sheet/web_guidance.rs +++ b/src/sheet/web_guidance.rs @@ -1,8 +1,8 @@ -use std::result::Result; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; use ironworks::sestring::SeString; -use crate::metadata::MetadataAdapter; +use std::result::Result; impl MetadataAdapter for WebGuidance { fn name() -> String { "WebGuidance".to_string() diff --git a/src/sheet/web_url.rs b/src/sheet/web_url.rs index faddedb7..1cfadc01 100644 --- a/src/sheet/web_url.rs +++ b/src/sheet/web_url.rs @@ -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 ironworks::excel::Row; impl MetadataAdapter for WebURL { fn name() -> String { "WebURL".to_string() diff --git a/src/sheet/wedding_bgm.rs b/src/sheet/wedding_bgm.rs index 595572d9..8719d419 100644 --- a/src/sheet/wedding_bgm.rs +++ b/src/sheet/wedding_bgm.rs @@ -1,8 +1,8 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; use ironworks::sestring::SeString; -use crate::metadata::MetadataAdapter; use std::result::Result; -use crate::error::PopulateError; impl MetadataAdapter for WeddingBGM { fn name() -> String { "WeddingBGM".to_string() diff --git a/src/sheet/weekly_bingo_order_data.rs b/src/sheet/weekly_bingo_order_data.rs index 09d21b97..9b0ea271 100644 --- a/src/sheet/weekly_bingo_order_data.rs +++ b/src/sheet/weekly_bingo_order_data.rs @@ -1,7 +1,7 @@ -use crate::metadata::MetadataAdapter; -use std::result::Result; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use std::result::Result; impl MetadataAdapter for WeeklyBingoOrderData { fn name() -> String { "WeeklyBingoOrderData".to_string() @@ -15,18 +15,22 @@ impl MetadataAdapter for WeeklyBingoOrderData { pub struct WeeklyBingoOrderData { pub r#type: u32, pub r#data: u32, - pub r#unknown2: u8, + pub r#unknown2: u32, pub r#text: u8, - pub r#icon: u32, + pub r#icon: u8, + pub r#unknown5: u32, + pub r#unknown6: u8, } impl WeeklyBingoOrderData { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#type: row.field(0usize + offset)?.into_u32()?, r#data: row.field(1usize + offset)?.into_u32()?, - r#unknown2: row.field(2usize + offset)?.into_u8()?, + r#unknown2: row.field(2usize + offset)?.into_u32()?, r#text: row.field(3usize + offset)?.into_u8()?, - r#icon: row.field(4usize + offset)?.into_u32()?, + r#icon: row.field(4usize + offset)?.into_u8()?, + r#unknown5: row.field(5usize + offset)?.into_u32()?, + r#unknown6: row.field(6usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/weekly_bingo_reward_data.rs b/src/sheet/weekly_bingo_reward_data.rs index 95cde3ce..f415325f 100644 --- a/src/sheet/weekly_bingo_reward_data.rs +++ b/src/sheet/weekly_bingo_reward_data.rs @@ -1,8 +1,8 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use crate::utility::read_array; use ironworks::excel::Row; use std::result::Result; -use crate::utility::read_array; -use crate::metadata::MetadataAdapter; -use crate::error::PopulateError; use std::vec::Vec; impl MetadataAdapter for WeeklyBingoRewardData { fn name() -> String { diff --git a/src/sheet/weekly_bingo_text.rs b/src/sheet/weekly_bingo_text.rs index f0f6fb91..7c2fc26d 100644 --- a/src/sheet/weekly_bingo_text.rs +++ b/src/sheet/weekly_bingo_text.rs @@ -1,8 +1,8 @@ -use std::result::Result; -use ironworks::sestring::SeString; -use ironworks::excel::Row; -use crate::metadata::MetadataAdapter; use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; +use ironworks::excel::Row; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for WeeklyBingoText { fn name() -> String { "WeeklyBingoText".to_string() diff --git a/src/sheet/weekly_lot_bonus.rs b/src/sheet/weekly_lot_bonus.rs index d816bfdc..bcfa6ef7 100644 --- a/src/sheet/weekly_lot_bonus.rs +++ b/src/sheet/weekly_lot_bonus.rs @@ -1,9 +1,9 @@ +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; use crate::utility::read_array; -use std::vec::Vec; -use std::result::Result; use ironworks::excel::Row; -use crate::error::PopulateError; +use std::result::Result; +use std::vec::Vec; impl MetadataAdapter for WeeklyLotBonus { fn name() -> String { "WeeklyLotBonus".to_string() @@ -16,6 +16,71 @@ impl MetadataAdapter for WeeklyLotBonus { #[derive(Debug)] pub struct WeeklyLotBonus { pub r#weekly_lot_bonus_threshold: Vec, + pub r#unknown31: u8, + pub r#unknown32: u16, + pub r#unknown33: u16, + pub r#unknown34: u16, + pub r#unknown35: u16, + pub r#unknown36: u16, + pub r#unknown37: u16, + pub r#unknown38: u16, + pub r#unknown39: u16, + pub r#unknown40: u16, + pub r#unknown41: u16, + pub r#unknown42: u16, + pub r#unknown43: u16, + pub r#unknown44: u16, + pub r#unknown45: u16, + pub r#unknown46: u16, + pub r#unknown47: u16, + pub r#unknown48: u16, + pub r#unknown49: u16, + pub r#unknown50: u16, + pub r#unknown51: u16, + pub r#unknown52: u16, + pub r#unknown53: u16, + pub r#unknown54: u16, + pub r#unknown55: u16, + pub r#unknown56: u16, + pub r#unknown57: u16, + pub r#unknown58: u16, + pub r#unknown59: u16, + pub r#unknown60: u16, + pub r#unknown61: u16, + pub r#unknown62: u16, + pub r#unknown63: u16, + pub r#unknown64: u8, + pub r#unknown65: u8, + pub r#unknown66: u8, + pub r#unknown67: u8, + pub r#unknown68: u8, + pub r#unknown69: u8, + pub r#unknown70: u8, + pub r#unknown71: u8, + pub r#unknown72: u8, + pub r#unknown73: u8, + pub r#unknown74: u8, + pub r#unknown75: u8, + pub r#unknown76: u8, + pub r#unknown77: u8, + pub r#unknown78: u8, + pub r#unknown79: u8, + pub r#unknown80: u8, + pub r#unknown81: u8, + pub r#unknown82: u8, + pub r#unknown83: u8, + pub r#unknown84: u8, + pub r#unknown85: u8, + pub r#unknown86: u8, + pub r#unknown87: u8, + pub r#unknown88: u8, + pub r#unknown89: u8, + pub r#unknown90: u8, + pub r#unknown91: u8, + pub r#unknown92: u8, + pub r#unknown93: u8, + pub r#unknown94: u8, + pub r#unknown95: u8, } impl WeeklyLotBonus { pub fn populate(row: &Row, offset: usize) -> Result { @@ -26,6 +91,71 @@ impl WeeklyLotBonus { 1usize, |offset| { Result::Ok(row.field(0usize + offset)?.into_u8()?) }, )?, + r#unknown31: row.field(31usize + offset)?.into_u8()?, + r#unknown32: row.field(32usize + offset)?.into_u16()?, + r#unknown33: row.field(33usize + offset)?.into_u16()?, + r#unknown34: row.field(34usize + offset)?.into_u16()?, + r#unknown35: row.field(35usize + offset)?.into_u16()?, + r#unknown36: row.field(36usize + offset)?.into_u16()?, + r#unknown37: row.field(37usize + offset)?.into_u16()?, + r#unknown38: row.field(38usize + offset)?.into_u16()?, + r#unknown39: row.field(39usize + offset)?.into_u16()?, + r#unknown40: row.field(40usize + offset)?.into_u16()?, + r#unknown41: row.field(41usize + offset)?.into_u16()?, + r#unknown42: row.field(42usize + offset)?.into_u16()?, + r#unknown43: row.field(43usize + offset)?.into_u16()?, + r#unknown44: row.field(44usize + offset)?.into_u16()?, + r#unknown45: row.field(45usize + offset)?.into_u16()?, + r#unknown46: row.field(46usize + offset)?.into_u16()?, + r#unknown47: row.field(47usize + offset)?.into_u16()?, + r#unknown48: row.field(48usize + offset)?.into_u16()?, + r#unknown49: row.field(49usize + offset)?.into_u16()?, + r#unknown50: row.field(50usize + offset)?.into_u16()?, + r#unknown51: row.field(51usize + offset)?.into_u16()?, + r#unknown52: row.field(52usize + offset)?.into_u16()?, + r#unknown53: row.field(53usize + offset)?.into_u16()?, + r#unknown54: row.field(54usize + offset)?.into_u16()?, + r#unknown55: row.field(55usize + offset)?.into_u16()?, + r#unknown56: row.field(56usize + offset)?.into_u16()?, + r#unknown57: row.field(57usize + offset)?.into_u16()?, + r#unknown58: row.field(58usize + offset)?.into_u16()?, + r#unknown59: row.field(59usize + offset)?.into_u16()?, + r#unknown60: row.field(60usize + offset)?.into_u16()?, + r#unknown61: row.field(61usize + offset)?.into_u16()?, + r#unknown62: row.field(62usize + offset)?.into_u16()?, + r#unknown63: row.field(63usize + offset)?.into_u16()?, + r#unknown64: row.field(64usize + offset)?.into_u8()?, + r#unknown65: row.field(65usize + offset)?.into_u8()?, + r#unknown66: row.field(66usize + offset)?.into_u8()?, + r#unknown67: row.field(67usize + offset)?.into_u8()?, + r#unknown68: row.field(68usize + offset)?.into_u8()?, + r#unknown69: row.field(69usize + offset)?.into_u8()?, + r#unknown70: row.field(70usize + offset)?.into_u8()?, + r#unknown71: row.field(71usize + offset)?.into_u8()?, + r#unknown72: row.field(72usize + offset)?.into_u8()?, + r#unknown73: row.field(73usize + offset)?.into_u8()?, + r#unknown74: row.field(74usize + offset)?.into_u8()?, + r#unknown75: row.field(75usize + offset)?.into_u8()?, + r#unknown76: row.field(76usize + offset)?.into_u8()?, + r#unknown77: row.field(77usize + offset)?.into_u8()?, + r#unknown78: row.field(78usize + offset)?.into_u8()?, + r#unknown79: row.field(79usize + offset)?.into_u8()?, + r#unknown80: row.field(80usize + offset)?.into_u8()?, + r#unknown81: row.field(81usize + offset)?.into_u8()?, + r#unknown82: row.field(82usize + offset)?.into_u8()?, + r#unknown83: row.field(83usize + offset)?.into_u8()?, + r#unknown84: row.field(84usize + offset)?.into_u8()?, + r#unknown85: row.field(85usize + offset)?.into_u8()?, + r#unknown86: row.field(86usize + offset)?.into_u8()?, + r#unknown87: row.field(87usize + offset)?.into_u8()?, + r#unknown88: row.field(88usize + offset)?.into_u8()?, + r#unknown89: row.field(89usize + offset)?.into_u8()?, + r#unknown90: row.field(90usize + offset)?.into_u8()?, + r#unknown91: row.field(91usize + offset)?.into_u8()?, + r#unknown92: row.field(92usize + offset)?.into_u8()?, + r#unknown93: row.field(93usize + offset)?.into_u8()?, + r#unknown94: row.field(94usize + offset)?.into_u8()?, + r#unknown95: row.field(95usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/world.rs b/src/sheet/world.rs index d2b34bc9..be7c828d 100644 --- a/src/sheet/world.rs +++ b/src/sheet/world.rs @@ -1,8 +1,8 @@ -use std::result::Result; +use crate::error::PopulateError; use crate::metadata::MetadataAdapter; -use ironworks::sestring::SeString; use ironworks::excel::Row; -use crate::error::PopulateError; +use ironworks::sestring::SeString; +use std::result::Result; impl MetadataAdapter for World { fn name() -> String { "World".to_string() diff --git a/src/sheet/world_dc_group_type.rs b/src/sheet/world_dc_group_type.rs index 5d7c6758..6c2e67d5 100644 --- a/src/sheet/world_dc_group_type.rs +++ b/src/sheet/world_dc_group_type.rs @@ -1,8 +1,8 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use ironworks::excel::Row; use ironworks::sestring::SeString; -use crate::metadata::MetadataAdapter; use std::result::Result; -use crate::error::PopulateError; impl MetadataAdapter for WorldDCGroupType { fn name() -> String { "WorldDCGroupType".to_string() @@ -16,12 +16,18 @@ impl MetadataAdapter for WorldDCGroupType { pub struct WorldDCGroupType { pub r#name: SeString, pub r#region: u8, + pub r#unknown2: u16, + pub r#unknown3: u8, + pub r#unknown4: bool, } impl WorldDCGroupType { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#name: row.field(0usize + offset)?.into_string()?, r#region: row.field(1usize + offset)?.into_u8()?, + r#unknown2: row.field(2usize + offset)?.into_u16()?, + r#unknown3: row.field(3usize + offset)?.into_u8()?, + r#unknown4: row.field(4usize + offset)?.into_bool()?, }) } } diff --git a/src/sheet/yard_catalog_category.rs b/src/sheet/yard_catalog_category.rs index bde55ce5..1d5dc62d 100644 --- a/src/sheet/yard_catalog_category.rs +++ b/src/sheet/yard_catalog_category.rs @@ -1,7 +1,7 @@ use crate::error::PopulateError; -use ironworks::sestring::SeString; use crate::metadata::MetadataAdapter; use ironworks::excel::Row; +use ironworks::sestring::SeString; use std::result::Result; impl MetadataAdapter for YardCatalogCategory { fn name() -> String { @@ -15,11 +15,15 @@ impl MetadataAdapter for YardCatalogCategory { #[derive(Debug)] pub struct YardCatalogCategory { pub r#category: SeString, + pub r#unknown1: u16, + pub r#unknown2: u8, } impl YardCatalogCategory { pub fn populate(row: &Row, offset: usize) -> Result { Result::Ok(Self { r#category: row.field(0usize + offset)?.into_string()?, + r#unknown1: row.field(1usize + offset)?.into_u16()?, + r#unknown2: row.field(2usize + offset)?.into_u8()?, }) } } diff --git a/src/sheet/yard_catalog_item_list.rs b/src/sheet/yard_catalog_item_list.rs index 3b85cccc..4b4a1bf1 100644 --- a/src/sheet/yard_catalog_item_list.rs +++ b/src/sheet/yard_catalog_item_list.rs @@ -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 YardCatalogItemList { fn name() -> String { diff --git a/src/sheet/ykw.rs b/src/sheet/ykw.rs index 34122810..e78612ec 100644 --- a/src/sheet/ykw.rs +++ b/src/sheet/ykw.rs @@ -1,9 +1,10 @@ +use crate::error::PopulateError; +use crate::metadata::MetadataAdapter; use crate::utility::read_array; use ironworks::excel::Row; -use crate::metadata::MetadataAdapter; -use std::vec::Vec; +use ironworks::sestring::SeString; use std::result::Result; -use crate::error::PopulateError; +use std::vec::Vec; impl MetadataAdapter for YKW { fn name() -> String { "YKW".to_string() @@ -18,6 +19,7 @@ pub struct YKW { pub r#unknown0: u16, pub r#item: u32, pub r#location: Vec, + pub r#unknown8: SeString, } impl YKW { pub fn populate(row: &Row, offset: usize) -> Result { @@ -30,6 +32,7 @@ impl YKW { 1usize, |offset| { Result::Ok(row.field(2usize + offset)?.into_u16()?) }, )?, + r#unknown8: row.field(8usize + offset)?.into_string()?, }) } } diff --git a/src/sheet/zone_shared_group.rs b/src/sheet/zone_shared_group.rs index 32e1959e..fb9d522d 100644 --- a/src/sheet/zone_shared_group.rs +++ b/src/sheet/zone_shared_group.rs @@ -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 ZoneSharedGroup { fn name() -> String { @@ -37,6 +37,11 @@ pub struct ZoneSharedGroup { pub r#unknown21: u8, pub r#quest5: u32, pub r#seq5: u32, + pub r#unknown24: bool, + pub r#unknown25: u8, + pub r#unknown26: u32, + pub r#unknown27: u32, + pub r#unknown28: bool, } impl ZoneSharedGroup { pub fn populate(row: &Row, offset: usize) -> Result { @@ -65,6 +70,11 @@ impl ZoneSharedGroup { r#unknown21: row.field(21usize + offset)?.into_u8()?, r#quest5: row.field(22usize + offset)?.into_u32()?, r#seq5: row.field(23usize + offset)?.into_u32()?, + r#unknown24: row.field(24usize + offset)?.into_bool()?, + r#unknown25: row.field(25usize + offset)?.into_u8()?, + r#unknown26: row.field(26usize + offset)?.into_u32()?, + r#unknown27: row.field(27usize + offset)?.into_u32()?, + r#unknown28: row.field(28usize + offset)?.into_bool()?, }) } }