139 lines
5.7 KiB
C++
139 lines
5.7 KiB
C++
#include "SunClientPrecompiledHeader.h"
|
|
#ifdef _NA_003027_20111013_HONOR_SYSTEM
|
|
#include "../ProgramCommon/HonorSystem/HonorSystemPacket.h"
|
|
#include "HonorSystem/HonorSystem.h"
|
|
#include "HonorSystem/HonorSystemPacketParser.h"
|
|
#include "HonorSystem/HonorSystemData.h"
|
|
#ifdef _NA_008679_20160202_REWORK_BATTLEGROUND
|
|
#include "Hero.h"
|
|
#endif //_NA_008679_20160202_REWORK_BATTLEGROUND
|
|
namespace HonorSystem{
|
|
|
|
namespace HonorSystemPacketParser
|
|
{
|
|
void ParsePacketTitleSystem(MSG_CG_HONORSYSTEM_PACKET* recv_packet)
|
|
{
|
|
CG_HONORSYSTEM_TITLE_PACKET* title_packet = static_cast<CG_HONORSYSTEM_TITLE_PACKET*>(recv_packet);
|
|
switch (title_packet->packet_type2)
|
|
{
|
|
case CG_HONORSYSTEM_TITLE_CHANGE_BRD:
|
|
{
|
|
PACKET_CG_HONORSYSTEM_TITLE_CHANGE_BRD* title_change_brd = static_cast<PACKET_CG_HONORSYSTEM_TITLE_CHANGE_BRD*>(title_packet);
|
|
HonorSystem::HonorSystemFunction::SetTitleName(title_change_brd->player_key_, title_change_brd->honor_title_index_);
|
|
HonorSystem::HonorSystemFunction::OnChangeTitle(title_change_brd->honor_title_index_);
|
|
}
|
|
break;
|
|
case CG_HONORSYSTEM_TITLE_ADD_ACK:
|
|
{
|
|
PACKET_CG_HONORSYSTEM_TITLE_ADD_ACK* title_add_ack = static_cast<PACKET_CG_HONORSYSTEM_TITLE_ADD_ACK*>(title_packet);
|
|
HonorSystem::GetHonorSystemData().AddTitleCode(title_add_ack->honor_title_index_);
|
|
HonorSystem::HonorSystemFunction::OnAddTitle();
|
|
}
|
|
break;
|
|
case CG_HONORSYSTEM_TITLE_REMOVE_ACK:
|
|
{
|
|
PACKET_CG_HONORSYSTEM_TITLE_REMOVE_ACK* title_remove_ack = static_cast<PACKET_CG_HONORSYSTEM_TITLE_REMOVE_ACK*>(title_packet);
|
|
HonorSystem::GetHonorSystemData().RemoveTitleCode(title_remove_ack->honor_title_index_);
|
|
HonorSystem::HonorSystemFunction::OnRemoveTitle();
|
|
}
|
|
break;
|
|
case CG_HONORSYSTEM_TITLE_LIST_ACK:
|
|
{
|
|
PACKET_CG_HONORSYSTEM_TITLE_LIST_ACK* title_list_ack = static_cast<PACKET_CG_HONORSYSTEM_TITLE_LIST_ACK*>(title_packet);
|
|
HonorSystem::GetHonorSystemData().RecvTitleList(title_list_ack->titles_);
|
|
|
|
}
|
|
break;
|
|
#ifdef _NA_008679_20160202_REWORK_BATTLEGROUND
|
|
case CG_HONORSYSTEM_TITLE_CHANGE_CMD:
|
|
{
|
|
PACKET_CG_HONORSYSTEM_TITLE_CHANGE_CMD* title_change_cmd = static_cast<PACKET_CG_HONORSYSTEM_TITLE_CHANGE_CMD*>(title_packet);
|
|
HonorSystem::HonorSystemFunction::SetHeroTitleName(title_change_cmd->honor_title_index_);
|
|
if (g_pHero)
|
|
{
|
|
g_pHero->SetTitleName(title_change_cmd->honor_title_index_);
|
|
HonorSystem::HonorSystemFunction::SetTitleName(g_pHero->GetObjectKey(), title_change_cmd->honor_title_index_);
|
|
}
|
|
HonorSystem::HonorSystemFunction::OnChangeTitle(title_change_cmd->honor_title_index_);
|
|
}
|
|
break;
|
|
#endif //_NA_008679_20160202_REWORK_BATTLEGROUND
|
|
case CG_HONORSYSTEM_TITLE_NAK:
|
|
{
|
|
// .. errorcode ó¸®
|
|
}
|
|
break;
|
|
default:
|
|
{
|
|
}
|
|
}
|
|
}
|
|
|
|
void ParsePacketFameReputeSystem(MSG_CG_HONORSYSTEM_PACKET* recv_packet)
|
|
{
|
|
CG_HONORSYSTEM_FAMEREPUTE_PACKET* fame_repute_packet = static_cast<CG_HONORSYSTEM_FAMEREPUTE_PACKET*>(recv_packet);
|
|
switch (fame_repute_packet->packet_type2)
|
|
{
|
|
case CG_HONORSYSTEM_FAMEREPUTE_POINT_TABLE_ACK:
|
|
{
|
|
PACKET_CG_HONORSYSTEM_FAMEREPUTE_POINT_TABLE_ACK* honor_point_ack = static_cast<PACKET_CG_HONORSYSTEM_FAMEREPUTE_POINT_TABLE_ACK*>(fame_repute_packet);
|
|
HonorSystem::GetHonorSystemData().RecvFameReputePointTable(honor_point_ack->honor_point_table_);
|
|
}
|
|
break;
|
|
case CG_HONORSYSTEM_FAMEREPUTE_POINT_CHANGE_CMD:
|
|
{
|
|
PACKET_CG_HONORSYSTEM_FAMEREPUTE_POINT_CHANGE_CMD* point_change_cmd = static_cast<PACKET_CG_HONORSYSTEM_FAMEREPUTE_POINT_CHANGE_CMD*>(fame_repute_packet);
|
|
if (point_change_cmd->type_ == HONOR_POINT_INFO::FAME)
|
|
{
|
|
HonorSystem::HonorSystemFunction::OnChangeFamePoint(point_change_cmd->code_, point_change_cmd->point_);
|
|
HonorSystem::GetHonorSystemData().ChangeFamePoint(point_change_cmd->code_, point_change_cmd->point_);
|
|
}
|
|
else if (point_change_cmd->type_ == HONOR_POINT_INFO::REPUTE)
|
|
{
|
|
HonorSystem::HonorSystemFunction::OnChangeReputePoint(point_change_cmd->code_, point_change_cmd->point_);
|
|
HonorSystem::GetHonorSystemData().ChangeReputePoint(point_change_cmd->code_, point_change_cmd->point_);
|
|
}
|
|
}
|
|
break;
|
|
|
|
case CG_HONORSYSTEM_FAMEREPUTE_NAK:
|
|
{
|
|
// .. errorcode ó¸®
|
|
}
|
|
break;
|
|
default:
|
|
{
|
|
}
|
|
}
|
|
}
|
|
|
|
void ParsePacketHonorSystem(MSG_BASE* recv_packet)
|
|
{
|
|
MSG_CG_HONORSYSTEM_PACKET* honor_system_packet = static_cast<MSG_CG_HONORSYSTEM_PACKET*>(recv_packet);
|
|
switch (honor_system_packet->packet_type)
|
|
{
|
|
case CG_HONORSYSTEM_TITLE:
|
|
{
|
|
ParsePacketTitleSystem(honor_system_packet);
|
|
}
|
|
break;
|
|
case CG_HONORSYSTEM_FAMEREPUTE:
|
|
{
|
|
ParsePacketFameReputeSystem(honor_system_packet);
|
|
}
|
|
break;
|
|
default:
|
|
{
|
|
}
|
|
}
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
};//HonorSystemPacketParser
|
|
|
|
};//namespace HonorSystem
|
|
|
|
#endif //_NA_003027_20111013_HONOR_SYSTEM
|