1 #ifndef _Diplomacy_h_ 2 #define _Diplomacy_h_ 3 4 #include <string> 5 #include <boost/serialization/access.hpp> 6 7 #include "../universe/Enums.h" 8 #include "../util/Export.h" 9 10 class FO_COMMON_API DiplomaticMessage { 11 public: 12 enum DiplomaticMessageType : int { 13 INVALID_DIPLOMATIC_MESSAGE_TYPE = -1, 14 WAR_DECLARATION, 15 PEACE_PROPOSAL, 16 ACCEPT_PEACE_PROPOSAL, 17 ALLIES_PROPOSAL, 18 ACCEPT_ALLIES_PROPOSAL, 19 END_ALLIANCE_DECLARATION, 20 CANCEL_PROPOSAL, 21 REJECT_PROPOSAL 22 }; 23 24 DiplomaticMessage(); 25 DiplomaticMessage(int sender_empire_id, int recipient_empire_id, DiplomaticMessageType type); 26 GetType()27 DiplomaticMessageType GetType() const { return m_type; } SenderEmpireID()28 int SenderEmpireID() const { return m_sender_empire; } RecipientEmpireID()29 int RecipientEmpireID() const { return m_recipient_empire; } 30 std::string Dump() const; 31 bool IsAllowed() const; ///< Tells if this dimplomatic message allowed by game rules 32 33 private: 34 int m_sender_empire; 35 int m_recipient_empire; 36 DiplomaticMessageType m_type; 37 38 friend class boost::serialization::access; 39 template <typename Archive> 40 void serialize(Archive& ar, const unsigned int version); 41 }; 42 43 struct FO_COMMON_API DiplomaticStatusUpdateInfo { 44 DiplomaticStatusUpdateInfo(); 45 DiplomaticStatusUpdateInfo(int empire1_id_, int empire2_id_, DiplomaticStatus status); 46 int empire1_id; 47 int empire2_id; 48 DiplomaticStatus diplo_status; 49 }; 50 51 bool operator==(const DiplomaticMessage& lhs, const DiplomaticMessage& rhs); 52 bool operator!=(const DiplomaticMessage& lhs, const DiplomaticMessage& rhs); 53 54 FO_COMMON_API DiplomaticMessage WarDeclarationDiplomaticMessage(int sender_empire_id, int recipient_empire_id); 55 FO_COMMON_API DiplomaticMessage PeaceProposalDiplomaticMessage(int sender_empire_id, int recipient_empire_id); 56 FO_COMMON_API DiplomaticMessage AcceptPeaceDiplomaticMessage(int sender_empire_id, int recipient_empire_id); 57 FO_COMMON_API DiplomaticMessage AlliesProposalDiplomaticMessage(int sender_empire_id, int recipient_empire_id); 58 FO_COMMON_API DiplomaticMessage AcceptAlliesDiplomaticMessage(int sender_empire_id, int recipient_empire_id); 59 FO_COMMON_API DiplomaticMessage EndAllianceDiplomaticMessage(int sender_empire_id, int recipient_empire_id); 60 FO_COMMON_API DiplomaticMessage CancelDiplomaticMessage(int sender_empire_id, int recipient_empire_id); 61 FO_COMMON_API DiplomaticMessage RejectProposalDiplomaticMessage(int sender_empire_id, int recipient_empire_id); 62 63 #endif // _Diplomacy_h_ 64