Guest User

AI_cl_BroadcastMsgManager::PrepareBroadcastMessage

a guest
Jul 13th, 2020
39
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.78 KB | None | 0 0
  1. NET_Message *__thiscall AI_cl_BroadcastMsgManager::PrepareBroadcastMessage(NET_Message *this, _DWORD *peer_param, unsigned int index, int a4, int a5)
  2. {
  3.   signed int v8; // ebx
  4.   _BYTE *v9; // eax
  5.   char paramType; // al
  6.   _DWORD *v11; // edx
  7.   const char *v12; // eax
  8.  
  9.   this->sizeWithoutChecksum = 0;
  10.   this->byteE = 0;
  11.   this->byteD = 0;
  12.   this->byteC = 0;
  13.   this->currPos = 0;
  14.   this->peer = peer_param;
  15.   this->messageTypeID = 10;
  16.   this->pBuffer = this + 16;
  17.   NET_Message::Append2Bytes(this, index);
  18.   if ( AI_cl_BroadcastMsgManager::uc_NbParam(AI_BroadcastMsgManager::Instance, index) )
  19.   {
  20.     v8 = 1;
  21.     do
  22.     {
  23.       v9 = AI_cl_BroadcastMsgManager::roParam(AI_BroadcastMsgManager::Instance, index, v8);
  24.       peer_param = v9;
  25.       paramType = v9[8];
  26.       if ( paramType >= 0 )
  27.       {
  28.         switch ( paramType )
  29.         {
  30.           case 1:
  31.           case 2:
  32.             NET_Message::Append1Byte(this, 0);
  33.             NET_Message::Append4Bytes(this, *peer_param);
  34.             break;
  35.           case 3:
  36.             NET_Message::Append1Byte(this, 2);
  37.             break;
  38.           case 4:
  39.             peer_param = AI_cl_BroadcastMsgManager::pvParam(AI_BroadcastMsgManager::Instance, index, v8);
  40.             NET_Message::Append1Byte(this, 3);
  41.             NET_Message::Append4Bytes(this, *peer_param);
  42.             NET_Message::Append4Bytes(this, peer_param[1]);
  43.             NET_Message::Append4Bytes(this, peer_param[2]);
  44.             break;
  45.           case 5:
  46.             index = 0;
  47.             peer_param = 0;
  48.             AI_cl_BroadcastMsgManager::GetParamStruct(AI_BroadcastMsgManager::Instance, index, v8, &index, &peer_param);
  49.             NET_Message::Append1Byte(this, 5);
  50.             NET_Message::Append1Byte(this, peer_param);
  51.             NET_Message::AppendBuffer(this, index, peer_param);
  52.             break;
  53.           case 6:
  54.             peer_param = AI_cl_BroadcastMsgManager::pzParam(AI_BroadcastMsgManager::Instance, index, v8);
  55.             NET_Message::Append1Byte(this, 4);
  56.             v11 = peer_param;
  57.             v12 = peer_param;
  58.             peer_param = (peer_param + 1);
  59.             NET_Message::AppendBuffer(this, v11, v12 + strlen(v12) + 1 - peer_param + 1);
  60.             break;
  61.           default:
  62.             break;
  63.         }
  64.       }
  65.       else
  66.       {
  67.         index = 0;
  68.         peer_param = 0;
  69.         AI_cl_BroadcastMsgManager::GetParamNetBuffer(AI_BroadcastMsgManager::Instance, index, v8, &index, &peer_param);
  70.         NET_Message::Append1Byte(this, 128);
  71.         NET_Message::Append2Bytes(this, peer_param);
  72.         NET_Message::AppendBuffer(this, index, peer_param);
  73.       }
  74.       LOBYTE(v8) = v8 + 1;
  75.     }
  76.     while ( (v8 - 1) < AI_cl_BroadcastMsgManager::uc_NbParam(AI_BroadcastMsgManager::Instance, index) );
  77.   }
  78.   return this;
  79. }
Advertisement
Add Comment
Please, Sign In to add comment