Exemple #1
0
bool operator ==(const ShipDesign& first, const ShipDesign& second) {
    if (first.Hull() != second.Hull())
        return false;

    std::map<std::string, int> first_parts;
    std::map<std::string, int> second_parts;

    for (const std::string& part_name : first.Parts())
    { ++first_parts[part_name]; }

    for (const std::string& part_name : second.Parts())
    { ++second_parts[part_name]; }

    return first_parts == second_parts;
}
Exemple #2
0
bool operator ==(const ShipDesign& first, const ShipDesign& second) {
    if (first.Hull() != second.Hull())
        return false;

    std::map<std::string, int> first_parts;
    std::map<std::string, int> second_parts;

    for (std::vector<std::string>::const_iterator it = first.Parts().begin();
         it != first.Parts().end(); ++it)
    { ++first_parts[*it]; }

    for (std::vector<std::string>::const_iterator it = second.Parts().begin();
         it != second.Parts().end(); ++it)
    { ++second_parts[*it]; }

    return first_parts == second_parts;
}
Exemple #3
0
ShipDesignOrder::ShipDesignOrder(int empire, int new_design_id, const ShipDesign& ship_design) :
    Order(empire),
    m_design_id(new_design_id),
    m_update_name_or_description(false),
    m_delete_design_from_empire(false),
    m_create_new_design(true),
    m_name(ship_design.Name()),
    m_description(ship_design.Description()),
    m_designed_on_turn(ship_design.DesignedOnTurn()),
    m_hull(ship_design.Hull()),
    m_parts(ship_design.Parts()),
    m_is_monster(ship_design.IsMonster()),
    m_icon(ship_design.Icon()),
    m_3D_model(ship_design.Model()),
    m_name_desc_in_stringtable(ship_design.LookupInStringtable())
{}