#ifndef _PROGRAMCOMMON_HONORSYSTEM_HONORSYSTEMPACKET_H #define _PROGRAMCOMMON_HONORSYSTEM_HONORSYSTEMPACKET_H #ifdef _NA_003027_20111013_HONOR_SYSTEM #include "Protocol_CG.h" ////////////////////////////////////////////////////////////////////////// // category : CG_CHARINFO // protocol : MSG_CG_HONORSYSTEM_PACKET // packet_type : eCG_HONORSYSTEM_PACKET enum eCG_HONORSYSTEM_PACKET { CG_HONORSYSTEM_TITLE = 1, CG_HONORSYSTEM_FAMEREPUTE = 2, }; // struct CG_HONORSYSTEM_TITLE_PACKET : public MSG_CG_HONORSYSTEM_PACKET { BYTE packet_type2; // sub packet type CG_HONORSYSTEM_TITLE_PACKET() { packet_type = CG_HONORSYSTEM_TITLE; } }; // struct CG_HONORSYSTEM_FAMEREPUTE_PACKET : public MSG_CG_HONORSYSTEM_PACKET { BYTE packet_type2; // sub packet type CG_HONORSYSTEM_FAMEREPUTE_PACKET() { packet_type = CG_HONORSYSTEM_FAMEREPUTE; } }; ////////////////////////////////////////////////////////////////////////// // category : CG_CHARINFO // protocol : MSG_CG_HONORSYSTEM_PACKET // packet_type : eCG_HONORSYSTEM_PACKET // packet_type2 : eCG_HONORSTSTEM_TITLE_PACKET enum eCG_HONORSTSTEM_TITLE_PACKET { CG_HONORSYSTEM_TITLE_CHANGE_CMD = 1, CG_HONORSYSTEM_TITLE_CHANGE_BRD, CG_HONORSYSTEM_TITLE_ADD_ACK, CG_HONORSYSTEM_TITLE_REMOVE_ACK, CG_HONORSYSTEM_TITLE_LIST_ACK, CG_HONORSYSTEM_TITLE_NAK, }; struct PACKET_CG_HONORSYSTEM_TITLE_CHANGE_CMD : public CG_HONORSYSTEM_TITLE_PACKET { WORD honor_title_index_; PACKET_CG_HONORSYSTEM_TITLE_CHANGE_CMD(WORD index) { packet_type2 = CG_HONORSYSTEM_TITLE_CHANGE_CMD; honor_title_index_ = index; } }; struct PACKET_CG_HONORSYSTEM_TITLE_CHANGE_BRD : public CG_HONORSYSTEM_TITLE_PACKET { PLAYERKEY player_key_; WORD honor_title_index_; PACKET_CG_HONORSYSTEM_TITLE_CHANGE_BRD(PLAYERKEY player_key, WORD index) { packet_type2 = CG_HONORSYSTEM_TITLE_CHANGE_BRD; player_key_ = player_key; honor_title_index_ = index; } }; struct PACKET_CG_HONORSYSTEM_TITLE_ADD_ACK : public CG_HONORSYSTEM_TITLE_PACKET { WORD honor_title_index_; PACKET_CG_HONORSYSTEM_TITLE_ADD_ACK(WORD index) { packet_type2 = CG_HONORSYSTEM_TITLE_ADD_ACK; honor_title_index_ = index; } }; struct PACKET_CG_HONORSYSTEM_TITLE_REMOVE_ACK : public CG_HONORSYSTEM_TITLE_PACKET { WORD honor_title_index_; PACKET_CG_HONORSYSTEM_TITLE_REMOVE_ACK(WORD index) { packet_type2 = CG_HONORSYSTEM_TITLE_REMOVE_ACK; honor_title_index_ = index; } }; struct PACKET_CG_HONORSYSTEM_TITLE_LIST_ACK : public CG_HONORSYSTEM_TITLE_PACKET { HonorTitleTable titles_; PACKET_CG_HONORSYSTEM_TITLE_LIST_ACK() { packet_type2 = CG_HONORSYSTEM_TITLE_LIST_ACK; memset(&titles_, 0, sizeof(titles_)); } // CHANGES: f110829.4L uint16_t GetSize() const { const size_t kMinSize = sizeof(*this) - sizeof(titles_); return static_cast(kMinSize + titles_.GetSize()); }; }; enum eHonorSystemTitleErrorCode { HONORSYSTEM_TITLE_ERROR = 0, // general error... HONORSYSTEM_TITLE_ERROR_CHANGE_FAIL, // title change fail error HONORSYSTEM_TITLE_ERROR_ADD_FAIL, HONORSYSTEM_TITLE_ERROR_REMOVE_FAIL, }; struct PACKET_CG_HONORSYSTEM_TITLE_NAK : public CG_HONORSYSTEM_TITLE_PACKET { WORD error_code_; PACKET_CG_HONORSYSTEM_TITLE_NAK() : error_code_(0) { packet_type2 = CG_HONORSYSTEM_TITLE_NAK; } }; ////////////////////////////////////////////////////////////////////////// // category : CG_CHARINFO // protocol : MSG_CG_HONORSYSTEM_PACKET // packet_type : eCG_HONORSYSTEM_PACKET // packet_type2 : eCG_HONORSTSTEM_FAMEREPUTE_PACKET enum eCG_HONORSTSTEM_FAMEREPUTE_PACKET { CG_HONORSYSTEM_FAMEREPUTE_POINT_TABLE_ACK = 1,// ¸í¼º/ÆòÆÇ Àüü Á¡¼ö Á¤º¸(S->C) CG_HONORSYSTEM_FAMEREPUTE_POINT_CHANGE_CMD, // ¸í¼º/ÆòÆÇ º¯°æ Ä¿¸Çµå(S->C) CG_HONORSYSTEM_FAMEREPUTE_NAK, }; enum eHonorSystemFameReputeErrorCode { HONORSYSTEM_FAMEREPUTE_ERROR = 0, // general error... }; struct PACKET_CG_HONORSYSTEM_FAMEREPUTE_POINT_TABLE_ACK : public CG_HONORSYSTEM_FAMEREPUTE_PACKET { HonorPointTable honor_point_table_; PACKET_CG_HONORSYSTEM_FAMEREPUTE_POINT_TABLE_ACK() { packet_type2 = CG_HONORSYSTEM_FAMEREPUTE_POINT_TABLE_ACK; memset(&honor_point_table_, 0, sizeof(honor_point_table_)); } // CHANGES: f110829.4L uint16_t GetSize() const { const size_t kMinSize = sizeof(*this) - sizeof(honor_point_table_); return static_cast(kMinSize + honor_point_table_.GetSize()); }; }; struct PACKET_CG_HONORSYSTEM_FAMEREPUTE_POINT_CHANGE_CMD : public CG_HONORSYSTEM_FAMEREPUTE_PACKET { BYTE type_; WORD code_; // ¸í¼º ÄÚµå DWORD point_; // ÇØ´ç ¸í¼ºÀÇ º¯°æµÈ Á¡¼ö PACKET_CG_HONORSYSTEM_FAMEREPUTE_POINT_CHANGE_CMD(BYTE _type, WORD _code, DWORD _point) { packet_type2 = CG_HONORSYSTEM_FAMEREPUTE_POINT_CHANGE_CMD; type_ = _type, code_ = _code, point_ = _point; } }; struct PACKET_CG_HONORSYSTEM_FAMEREPUTE_NAK : public CG_HONORSYSTEM_FAMEREPUTE_PACKET { WORD error_code_; PACKET_CG_HONORSYSTEM_FAMEREPUTE_NAK() : error_code_(0) { packet_type2 = CG_HONORSYSTEM_FAMEREPUTE_NAK; } }; #endif //_NA_003027_20111013_HONOR_SYSTEM #endif //_PROGRAMCOMMON_HONORSYSTEM_HONORSYSTEMPACKET_H