use std::collections::BTreeMap;

use crate::inspect::smp::save_load::SmpLoadedSaveSlice;

pub(super) struct OverrideProjection {
    pub(super) named_locomotive_cost: BTreeMap<String, u32>,
    pub(super) all_cargo_price_override: Option<u32>,
    pub(super) named_cargo_price_overrides: BTreeMap<String, u32>,
    pub(super) all_cargo_production_override: Option<u32>,
    pub(super) factory_cargo_production_override: Option<u32>,
    pub(super) farm_mine_cargo_production_override: Option<u32>,
    pub(super) named_cargo_production_overrides: BTreeMap<String, u32>,
    pub(super) cargo_production_overrides: BTreeMap<u32, u32>,
    pub(super) world_scalar_overrides: BTreeMap<String, i64>,
}

pub(super) fn project_overrides(
    _save_slice: &SmpLoadedSaveSlice,
    _metadata: &mut BTreeMap<String, String>,
) -> OverrideProjection {
    OverrideProjection {
        named_locomotive_cost: BTreeMap::new(),
        all_cargo_price_override: None,
        named_cargo_price_overrides: BTreeMap::new(),
        all_cargo_production_override: None,
        factory_cargo_production_override: None,
        farm_mine_cargo_production_override: None,
        named_cargo_production_overrides: BTreeMap::new(),
        cargo_production_overrides: BTreeMap::new(),
        world_scalar_overrides: BTreeMap::new(),
    }
}
