コード例 #1
0
ファイル: ResourceManager.cpp プロジェクト: poxu/falltergeist
libfalltergeist::MapFileType* ResourceManager::mapFileType(std::string filename)
{
    auto item = dynamic_cast<libfalltergeist::MapFileType*>(datFileItem(filename));
    if (item)
    {
        item->setCallback(&ResourceManager::proFileType);
    }
    return item;
}
コード例 #2
0
Game::GameLocation* ResourceManager::gameLocation(unsigned int number)
{
    if (_gameLocations.find(number) != _gameLocations.end())
    {
        return _gameLocations.at(number);
    }

    std::istream stream(datFileItem("data/maps.txt"));
    Ini::Parser iniParser(stream);
    auto ini = iniParser.parse();

    std::stringstream ss;
    ss << "map " << std::setw(3) << std::setfill('0') << number;

    auto section = ini->section(ss.str());
    if (!section) return 0;

    Game::GameLocation* location = new Game::GameLocation();

    for (auto property : *section.get())
    {
        std::string name = property.first;
        Logger::critical() << name << std::endl;
        if (name == "lookup_name")
        {
            location->setName(property.second.value());
        }
        else if (name == "map_name")
        {
            location->setFilename("maps/" + property.second.value()+ ".map");
        }
        else if (name == "music")
        {
            location->setMusic(property.second.value());
        }
        else if (name == "pipboy_active")
        {
            location->setPipboy(property.second.boolValue());
        }
        else if (name == "saved")
        {
            location->setSaveable(property.second.boolValue());
        }
    }

    _gameLocations.insert(std::make_pair(number, location));

    return _gameLocations.at(number);
}
コード例 #3
0
ファイル: ResourceManager.cpp プロジェクト: poxu/falltergeist
libfalltergeist::RixFileType* ResourceManager::rixFileType(std::string filename)
{
    return dynamic_cast<libfalltergeist::RixFileType*>(datFileItem(filename));
}
コード例 #4
0
libfalltergeist::Sve::File* ResourceManager::sveFileType(const std::string& filename)
{
    return dynamic_cast<libfalltergeist::Sve::File*>(datFileItem(filename));
}