コード例 #1
0
int game::inv_activatable(std::string const &title)
{
    u.inv.restack(&u);
    u.inv.sort();
    indexed_invslice activatables = u.inv.slice_filter_by_activation(u);
    return display_slice(activatables, title);
}
コード例 #2
0
int game::inv_for_salvage(const std::string &title, const salvage_actor& actor )
{
    u.inv.restack(&u);
    u.inv.sort();
    indexed_invslice reduced_inv = u.inv.slice_filter_by_salvageability( actor );
    return display_slice(reduced_inv, title);
}
コード例 #3
0
// Display current inventory.
int game::inv(const std::string &title, const int position)
{
    u.inv.restack(&u);
    u.inv.sort();
    indexed_invslice slice = u.inv.slice_filter();
    return display_slice(slice, title, true, position);
}
コード例 #4
0
int game::inv_for_unequipped(std::string const &title, const item_filter filter)
{
    u.inv.restack(&u);
    u.inv.sort();
    indexed_invslice reduced_inv = u.inv.slice_filter_by(filter);
    return display_slice(reduced_inv, title, false);
}
コード例 #5
0
int game::inv_type(std::string title, item_cat inv_item_type)
{
    u.inv.restack(&u);
    u.inv.sort();
    indexed_invslice reduced_inv = u.inv.slice_filter_by_category(inv_item_type, u);
    return display_slice(reduced_inv, title);
}
コード例 #6
0
int game::inv_for_liquid(const item &liquid, const std::string &title, bool const auto_choose_single)
{
    u.inv.restack(&u);
    u.inv.sort();
    indexed_invslice reduced_inv = u.inv.slice_filter_by_capacity_for_liquid(liquid);
    if (auto_choose_single && reduced_inv.size() == 1) {
        std::list<item> *cont_stack = reduced_inv[0].first;
        if (! cont_stack->empty() ) {
            return reduced_inv[0].second;
        }
    }
    return display_slice(reduced_inv, title);
}
コード例 #7
0
int game::inv_for_flag(const std::string flag, const std::string title, bool auto_choose_single)
{
    u.inv.restack(&u);
    u.inv.sort();
    indexed_invslice reduced_inv = u.inv.slice_filter_by_flag(flag);
    if (auto_choose_single && reduced_inv.size() == 1) {
        std::list<item> *cont_stack = reduced_inv[0].first;
        if (cont_stack->size() > 0) {
            return reduced_inv[0].second;
        }
    }
    return display_slice(reduced_inv, title);
}