use crate::inspect::smp::catalog::offsets::world::RT3_SAVE_WORLD_BLOCK_ISSUE_OPINION_TERM_COUNT;

pub(in crate::inspect::smp) const SAVE_COMPANY_RECORD_NAME_OFFSET: usize = 0x04;
pub(in crate::inspect::smp) const SAVE_COMPANY_RECORD_NAME_MAX_LEN: usize = 0x24;
pub(in crate::inspect::smp) const SAVE_COMPANY_RECORD_LINKED_CHAIRMAN_OFFSET: usize = 0x3b;
pub(in crate::inspect::smp) const SAVE_COMPANY_RECORD_ACTIVE_OFFSET: usize = 0x3f;
pub(in crate::inspect::smp) const SAVE_COMPANY_RECORD_OUTSTANDING_SHARES_OFFSET: usize = 0x47;
pub(in crate::inspect::smp) const SAVE_COMPANY_RECORD_SUPPORT_SCALAR_OFFSET: usize = 0x4f;
pub(in crate::inspect::smp) const SAVE_COMPANY_RECORD_COMPANY_VALUE_OFFSET: usize = 0x57;
pub(in crate::inspect::smp) const SAVE_COMPANY_RECORD_BOND_COUNT_OFFSET: usize = 0x5b;
pub(in crate::inspect::smp) const SAVE_COMPANY_RECORD_BOND_TABLE_OFFSET: usize = 0x5f;
pub(in crate::inspect::smp) const SAVE_COMPANY_RECORD_BOND_SLOT_STRIDE: usize = 12;
pub(in crate::inspect::smp) const SAVE_COMPANY_RECORD_CHAIRMAN_SALARY_BASELINE_OFFSET: usize =
    0x14f;
pub(in crate::inspect::smp) const SAVE_COMPANY_RECORD_CHAIRMAN_BONUS_YEAR_OFFSET: usize = 0x34f;
pub(in crate::inspect::smp) const SAVE_COMPANY_RECORD_CHAIRMAN_BONUS_AMOUNT_OFFSET: usize = 0x353;
pub(in crate::inspect::smp) const SAVE_COMPANY_RECORD_MERGER_COOLDOWN_OFFSET: usize = 0x15f;
pub(in crate::inspect::smp) const SAVE_COMPANY_RECORD_FOUNDING_YEAR_OFFSET: usize = 0x157;
pub(in crate::inspect::smp) const SAVE_COMPANY_RECORD_LAST_BANKRUPTCY_YEAR_OFFSET: usize = 0x163;
pub(in crate::inspect::smp) const SAVE_COMPANY_RECORD_CURRENT_ISSUE_CALENDAR_OFFSET: usize = 0x16b;
pub(in crate::inspect::smp) const SAVE_COMPANY_RECORD_CURRENT_ISSUE_CALENDAR_OFFSET_2: usize =
    0x16f;
pub(in crate::inspect::smp) const SAVE_COMPANY_RECORD_PRIOR_ISSUE_CALENDAR_OFFSET: usize = 0x173;
pub(in crate::inspect::smp) const SAVE_COMPANY_RECORD_PRIOR_ISSUE_CALENDAR_OFFSET_2: usize = 0x177;
pub(in crate::inspect::smp) const SAVE_COMPANY_RECORD_TAKEOVER_COOLDOWN_OFFSET: usize = 0x289;
pub(in crate::inspect::smp) const SAVE_COMPANY_RECORD_LAST_DIVIDEND_YEAR_OFFSET: usize = 0x0d2d;
pub(in crate::inspect::smp) const SAVE_COMPANY_RECORD_PREFERRED_LOCOMOTIVE_ENGINE_TYPE_OFFSET:
    usize = 0x0d17;
pub(in crate::inspect::smp) const SAVE_COMPANY_RECORD_CITY_CONNECTION_LATCH_OFFSET: usize = 0x0d18;
pub(in crate::inspect::smp) const SAVE_COMPANY_RECORD_LINKED_TRANSIT_ROUTE_ANCHOR_ENTRY_ID_OFFSET:
    usize = 0x0d35;
pub(in crate::inspect::smp) const SAVE_COMPANY_RECORD_LINKED_TRANSIT_AUTOROUTE_SITE_SCORE_CACHE_REFRESH_ABSOLUTE_COUNTER_OFFSET: usize =
    0x0d3a;
pub(in crate::inspect::smp) const SAVE_COMPANY_RECORD_LINKED_TRANSIT_SITE_PEER_CACHE_REFRESH_ABSOLUTE_COUNTER_OFFSET: usize =
    0x0d3e;
pub(in crate::inspect::smp) const SAVE_COMPANY_RECORD_SUPPORT_PROGRESS_OFFSET: usize = 0x0d07;
pub(in crate::inspect::smp) const SAVE_COMPANY_RECORD_CHAIRMAN_SALARY_CURRENT_OFFSET: usize =
    0x0d59;
pub(in crate::inspect::smp) const SAVE_COMPANY_RECORD_LINKED_TRANSIT_LATCH_OFFSET: usize = 0x0d56;
pub(in crate::inspect::smp) const SAVE_COMPANY_RECORD_RECENT_PER_SHARE_SUBSCORE_OFFSET: usize =
    0x0d19;
pub(in crate::inspect::smp) const SAVE_COMPANY_RECORD_CACHED_SHARE_PRICE_OFFSET: usize = 0x0d7b;
pub(in crate::inspect::smp) const SAVE_COMPANY_RECORD_TRACK_LAYING_CAPACITY_OFFSET: usize = 0x7680;
pub(in crate::inspect::smp) const SAVE_COMPANY_RECORD_LINKED_TRANSIT_ROUTE_ANCHOR_FALLBACK_COUNT_OFFSETS: [usize; 3] =
    [0x7664, 0x7668, 0x766c];
pub(in crate::inspect::smp) const SAVE_COMPANY_RECORD_STAT_BAND_ROOT_0CFB_OFFSET: usize = 0x0cfb;
pub(in crate::inspect::smp) const SAVE_COMPANY_RECORD_STAT_BAND_ROOT_0D7F_OFFSET: usize = 0x0d7f;
pub(in crate::inspect::smp) const SAVE_COMPANY_RECORD_STAT_BAND_ROOT_1C47_OFFSET: usize = 0x1c47;
pub(in crate::inspect::smp) const SAVE_COMPANY_RECORD_STAT_BAND_ROOT_WINDOW_LEN_DWORDS: usize = 32;
pub(in crate::inspect::smp) const SAVE_COMPANY_RECORD_ISSUE_OPINION_TERMS_OFFSET: usize = 0x2ab;
pub(in crate::inspect::smp) const SAVE_COMPANY_RECORD_ISSUE_OPINION_TERM_COUNT: usize =
    RT3_SAVE_WORLD_BLOCK_ISSUE_OPINION_TERM_COUNT;
pub(in crate::inspect::smp) const SAVE_COMPANY_RECORD_YEAR_STAT_FAMILY_QWORD_COUNT: usize =
    crate::event::metrics::RUNTIME_COMPANY_STAT_SLOT_COUNT as usize
        * crate::event::metrics::RUNTIME_COMPANY_YEAR_STAT_FAMILY_SPAN as usize;
pub(in crate::inspect::smp) const SAVE_COMPANY_RECORD_SPECIAL_STAT_FAMILY_232A_QWORD_COUNT: usize =
    crate::event::metrics::RUNTIME_COMPANY_STAT_SLOT_COUNT as usize;
pub(in crate::inspect::smp) const SAVE_COMPANY_RECORD_DIRECT_CONTROL_TRANSFER_FLOAT_FIELDS:
    [usize; 10] = [
    0x4b, 0x53, 0x323, 0x327, 0x32b, 0x32f, 0x333, 0x337, 0x33b, 0x33f,
];
pub(in crate::inspect::smp) const SAVE_COMPANY_RECORD_DIRECT_CONTROL_TRANSFER_INT_FIELDS: [usize;
    5] = [0x14f, 0x34b, 0x0d0b, 0x0d0f, 0x0d13];
pub(in crate::inspect::smp) const SAVE_COMPANY_RECORD_SCALAR_CANDIDATE_FIELDS: [(&str, usize); 9] = [
    ("mutable_support_scalar", 0x4f),
    ("young_company_support_scalar", 0x57),
    (
        "support_progress_word",
        SAVE_COMPANY_RECORD_SUPPORT_PROGRESS_OFFSET,
    ),
    (
        "recent_per_share_subscore",
        SAVE_COMPANY_RECORD_RECENT_PER_SHARE_SUBSCORE_OFFSET,
    ),
    ("cached_share_price", 0x0d7b),
    (
        "current_issue_calendar_word",
        SAVE_COMPANY_RECORD_CURRENT_ISSUE_CALENDAR_OFFSET,
    ),
    (
        "current_issue_calendar_word_2",
        SAVE_COMPANY_RECORD_CURRENT_ISSUE_CALENDAR_OFFSET_2,
    ),
    (
        "prior_issue_calendar_word",
        SAVE_COMPANY_RECORD_PRIOR_ISSUE_CALENDAR_OFFSET,
    ),
    (
        "prior_issue_calendar_word_2",
        SAVE_COMPANY_RECORD_PRIOR_ISSUE_CALENDAR_OFFSET_2,
    ),
];
pub(in crate::inspect::smp) const SAVE_COMPANY_RECORD_POST_CAPACITY_CANDIDATE_FIELDS: [(
    &str,
    usize,
); 6] = [
    ("post_capacity_word_1", 0x7684),
    ("post_capacity_word_2", 0x7688),
    ("post_capacity_word_3", 0x768c),
    ("post_capacity_word_4", 0x7690),
    ("post_capacity_word_5", 0x7694),
    ("post_capacity_word_6", 0x7698),
];
pub(in crate::inspect::smp) const SAVE_COMPANY_RECORD_START_SCAN_LIMIT: usize = 0x120;
