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; }
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; }
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()) {}