Working zone and world communication yay

This commit is contained in:
KimLS
2017-01-03 22:23:03 -08:00
parent 2447c38c82
commit f6ca59fbc6
20 changed files with 74 additions and 114 deletions
+21 -1
View File
@@ -52,7 +52,10 @@ void EQ::Net::ServertalkClient::Send(uint16_t opcode, EQ::Net::Packet &p)
void EQ::Net::ServertalkClient::SendPacket(ServerPacket *p)
{
EQ::Net::StaticPacket pout(p->pBuffer, p->size);
EQ::Net::DynamicPacket pout;
if (p->pBuffer) {
pout.PutData(0, p->pBuffer, p->size);
}
Send(p->opcode, pout);
}
@@ -61,6 +64,11 @@ void EQ::Net::ServertalkClient::OnMessage(uint16_t opcode, std::function<void(ui
m_message_callbacks.insert(std::make_pair(opcode, cb));
}
void EQ::Net::ServertalkClient::OnMessage(std::function<void(uint16_t, EQ::Net::Packet&)> cb)
{
m_message_callback = cb;
}
void EQ::Net::ServertalkClient::Connect()
{
if (m_addr.length() == 0 || m_port == 0 || m_connection || m_connecting) {
@@ -280,6 +288,10 @@ void EQ::Net::ServertalkClient::ProcessMessage(EQ::Net::Packet &p)
if (cb != m_message_callbacks.end()) {
cb->second(opcode, decrypted_packet);
}
if (m_message_callback) {
m_message_callback(opcode, decrypted_packet);
}
}
else {
size_t message_len = length;
@@ -289,6 +301,10 @@ void EQ::Net::ServertalkClient::ProcessMessage(EQ::Net::Packet &p)
if (cb != m_message_callbacks.end()) {
cb->second(opcode, packet);
}
if (m_message_callback) {
m_message_callback(opcode, packet);
}
}
#else
@@ -299,6 +315,10 @@ void EQ::Net::ServertalkClient::ProcessMessage(EQ::Net::Packet &p)
if (cb != m_message_callbacks.end()) {
m_message_callback_any(opcode, packet);
}
if (m_message_callback) {
m_message_callback(opcode, packet);
}
#endif
}
}