war 0.2.0

A viewer/editor for Darksiders saves, worlds, and scripts
Documentation
use crate::{darksiders1::gfc, utils::parsing::derailed};
use failure::Error;
use std::convert::TryFrom;

pub struct ResourceManager {
    _static: (),
}

impl ResourceManager {
    pub fn init(
        directory_manager: &mut gfc::DirectoryManager,
    ) -> Result<gfc::ResourcePackageList, Error> {
        let mut resource_manifest =
            directory_manager.get_manifest(gfc::DirectoryManager::MANIFEST_PACKAGES)?;
        let package_list =
            gfc::BinaryObjectReader::read_object(&mut resource_manifest)?;
        let package_list = gfc::ResourcePackageList::try_from(&package_list)
            .map_err(|_| derailed())?;
        Ok(package_list)
    }

    pub fn run_loading(
        directory_manager: &mut gfc::DirectoryManager,
        resource_package_info: &gfc::ResourcePackageInfo,
    ) -> Result<Vec<gfc::Resource>, Error> {
        resource_package_info.load(directory_manager)
    }
}