tests: cover quest framing and restart cooldowns
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
#include "stdafx.h"
|
||||
#include "constants.h"
|
||||
#include "quest_packet.h"
|
||||
#include "questmanager.h"
|
||||
#include "packet_structs.h"
|
||||
#include "buffer_manager.h"
|
||||
#include "char.h"
|
||||
#include "desc_client.h"
|
||||
#include "questevent.h"
|
||||
@@ -234,75 +234,34 @@ namespace quest
|
||||
assert(m_iSendToClient);
|
||||
assert(m_RunningQuestState);
|
||||
|
||||
packet_quest_info qi;
|
||||
TEMP_BUFFER payload;
|
||||
|
||||
qi.header = GC::QUEST_INFO;
|
||||
qi.length = sizeof(struct packet_quest_info);
|
||||
qi.index = m_RunningQuestState->iIndex;
|
||||
qi.flag = m_iSendToClient;
|
||||
QuestInfoPacketData packet_data {};
|
||||
packet_data.quest_index = static_cast<uint16_t>(m_RunningQuestState->iIndex);
|
||||
packet_data.send_flags = static_cast<uint8_t>(m_iSendToClient);
|
||||
packet_data.is_begin = m_RunningQuestState->bStart;
|
||||
packet_data.title = m_RunningQuestState->_title;
|
||||
packet_data.clock_name = m_RunningQuestState->_clock_name;
|
||||
packet_data.clock_value = m_RunningQuestState->_clock_value;
|
||||
packet_data.counter_name = m_RunningQuestState->_counter_name;
|
||||
packet_data.counter_value = m_RunningQuestState->_counter_value;
|
||||
packet_data.icon_file = m_RunningQuestState->_icon_file;
|
||||
|
||||
if (m_iSendToClient & QUEST_SEND_ISBEGIN)
|
||||
{
|
||||
BYTE temp = m_RunningQuestState->bStart?1:0;
|
||||
payload.write(&temp,1);
|
||||
qi.length+=1;
|
||||
|
||||
sys_log(1, "QUEST BeginFlag %d", (int)temp);
|
||||
}
|
||||
sys_log(1, "QUEST BeginFlag %d", static_cast<int>(m_RunningQuestState->bStart ? 1 : 0));
|
||||
if (m_iSendToClient & QUEST_SEND_TITLE)
|
||||
{
|
||||
m_RunningQuestState->_title.reserve(30+1);
|
||||
payload.write(m_RunningQuestState->_title.c_str(), 30+1);
|
||||
qi.length+=30+1;
|
||||
|
||||
sys_log(1, "QUEST Title %s", m_RunningQuestState->_title.c_str());
|
||||
}
|
||||
if (m_iSendToClient & QUEST_SEND_CLOCK_NAME)
|
||||
{
|
||||
m_RunningQuestState->_clock_name.reserve(16+1);
|
||||
payload.write(m_RunningQuestState->_clock_name.c_str(), 16+1);
|
||||
qi.length+=16+1;
|
||||
|
||||
sys_log(1, "QUEST Clock Name %s", m_RunningQuestState->_clock_name.c_str());
|
||||
}
|
||||
if (m_iSendToClient & QUEST_SEND_CLOCK_VALUE)
|
||||
{
|
||||
payload.write(&m_RunningQuestState->_clock_value, sizeof(int));
|
||||
qi.length+=4;
|
||||
|
||||
sys_log(1, "QUEST Clock Value %d", m_RunningQuestState->_clock_value);
|
||||
}
|
||||
if (m_iSendToClient & QUEST_SEND_COUNTER_NAME)
|
||||
{
|
||||
m_RunningQuestState->_counter_name.reserve(16+1);
|
||||
payload.write(m_RunningQuestState->_counter_name.c_str(), 16+1);
|
||||
qi.length+=16+1;
|
||||
|
||||
sys_log(1, "QUEST Counter Name %s", m_RunningQuestState->_counter_name.c_str());
|
||||
}
|
||||
if (m_iSendToClient & QUEST_SEND_COUNTER_VALUE)
|
||||
{
|
||||
payload.write(&m_RunningQuestState->_counter_value, sizeof(int));
|
||||
qi.length+=4;
|
||||
|
||||
sys_log(1, "QUEST Counter Value %d", m_RunningQuestState->_counter_value);
|
||||
}
|
||||
if (m_iSendToClient & QUEST_SEND_ICON_FILE)
|
||||
{
|
||||
m_RunningQuestState->_icon_file.reserve(24+1);
|
||||
payload.write(m_RunningQuestState->_icon_file.c_str(), 24+1);
|
||||
qi.length+=24+1;
|
||||
|
||||
sys_log(1, "QUEST Icon File %s", m_RunningQuestState->_icon_file.c_str());
|
||||
}
|
||||
|
||||
TEMP_BUFFER buf;
|
||||
buf.write(&qi, sizeof(qi));
|
||||
if (payload.size() > 0)
|
||||
buf.write(payload.read_peek(), payload.size());
|
||||
|
||||
CQuestManager::instance().GetCurrentCharacterPtr()->GetDesc()->Packet(buf.read_peek(),buf.size());
|
||||
auto packet = BuildQuestInfoPacket(packet_data);
|
||||
CQuestManager::instance().GetCurrentCharacterPtr()->GetDesc()->Packet(packet.data(), packet.size());
|
||||
|
||||
m_iSendToClient = 0;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user