Advertisement
martysama0134

SendQuestInfoPakcet refactory

Apr 17th, 2022
1,151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.66 KB | None | 0 0
  1.  
  2.     void PC::SendQuestInfoPakcet()
  3.     {
  4.         assert(m_iSendToClient);
  5.         assert(m_RunningQuestState);
  6.  
  7.         packet_quest_info qi;
  8.  
  9.         qi.header = HEADER_GC_QUEST_INFO;
  10.         qi.size = sizeof(struct packet_quest_info);
  11.         qi.index = m_RunningQuestState->iIndex;
  12.         qi.flag = m_iSendToClient;
  13. #ifdef ENABLE_QUEST_CATEGORY
  14.         qi.c_index = CQuestManager::instance().ReadQuestCategoryFile(qi.index);
  15. #endif
  16.  
  17.         TEMP_BUFFER buf;
  18.         if (m_iSendToClient & QUEST_SEND_ISBEGIN)
  19.         {
  20.             BYTE temp = m_RunningQuestState->bStart?1:0;
  21.             buf.write(&temp,1);
  22.             qi.size+=sizeof(temp);
  23.             sys_log(1, "QUEST BeginFlag %d", (int)temp);
  24.         }
  25.         if (m_iSendToClient & QUEST_SEND_TITLE)
  26.         {
  27.             constexpr auto TitleSize = 30+1;
  28.             m_RunningQuestState->_title.reserve(TitleSize);
  29.             buf.write(m_RunningQuestState->_title.c_str(), TitleSize);
  30.             qi.size+=TitleSize;
  31.             sys_log(1, "QUEST Title %s", m_RunningQuestState->_title.c_str());
  32.         }
  33.         if (m_iSendToClient & QUEST_SEND_CLOCK_NAME)
  34.         {
  35.             constexpr auto ClockSize = 16+1;
  36.             m_RunningQuestState->_clock_name.reserve(ClockSize);
  37.             buf.write(m_RunningQuestState->_clock_name.c_str(), ClockSize);
  38.             qi.size+=ClockSize;
  39.             sys_log(1, "QUEST Clock Name %s", m_RunningQuestState->_clock_name.c_str());
  40.         }
  41.         if (m_iSendToClient & QUEST_SEND_CLOCK_VALUE)
  42.         {
  43.             buf.write(&m_RunningQuestState->_clock_value, sizeof(m_RunningQuestState->_clock_value));
  44.             qi.size+=sizeof(m_RunningQuestState->_clock_value);
  45.             sys_log(1, "QUEST Clock Value %d", m_RunningQuestState->_clock_value);
  46.         }
  47.         if (m_iSendToClient & QUEST_SEND_COUNTER_NAME)
  48.         {
  49.             constexpr auto CounterSize = 16+1;
  50.             m_RunningQuestState->_counter_name.reserve(CounterSize);
  51.             buf.write(m_RunningQuestState->_counter_name.c_str(), CounterSize);
  52.             qi.size+=CounterSize;
  53.             sys_log(1, "QUEST Counter Name %s", m_RunningQuestState->_counter_name.c_str());
  54.         }
  55.         if (m_iSendToClient & QUEST_SEND_COUNTER_VALUE)
  56.         {
  57.             buf.write(&m_RunningQuestState->_counter_value, sizeof(m_RunningQuestState->_counter_value));
  58.             qi.size+=sizeof(m_RunningQuestState->_counter_value);
  59.             sys_log(1, "QUEST Counter Value %d", m_RunningQuestState->_counter_value);
  60.         }
  61.         if (m_iSendToClient & QUEST_SEND_ICON_FILE)
  62.         {
  63.             constexpr auto IconSize = 24+1;
  64.             m_RunningQuestState->_icon_file.reserve(IconSize);
  65.             buf.write(m_RunningQuestState->_icon_file.c_str(), IconSize);
  66.             qi.size+=IconSize;
  67.             sys_log(1, "QUEST Icon File %s", m_RunningQuestState->_icon_file.c_str());
  68.         }
  69.  
  70.         CQuestManager::instance().GetCurrentCharacterPtr()->GetDesc()->BufferedPacket(&qi, sizeof(qi));
  71.         CQuestManager::instance().GetCurrentCharacterPtr()->GetDesc()->Packet(buf.read_peek(), buf.size());
  72.  
  73.         m_iSendToClient = 0;
  74.  
  75.     }
  76.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement