@@ -42,11 +42,38 @@ extern IServerGameDLL *servergamedll;
4242
4343
4444// -----------------------------------------------------------------------------
45- // HELPERS
45+ // Forward declarations.
4646// -----------------------------------------------------------------------------
47- #ifndef USE_PROTOBUF
48- static int GetUsermessageIndex (const char * message_name)
47+ int GetUserMessageIndex (const char * message_name);
48+
49+
50+ // -----------------------------------------------------------------------------
51+ // Helpers.
52+ // -----------------------------------------------------------------------------
53+ #ifdef USE_PROTOBUF
54+ #include " game/shared/csgo/protobuf/cstrike15_usermessages.pb.h"
55+ #include " public/game/shared/csgo/protobuf/cstrike15_usermessage_helpers.h"
56+
57+ static void SendProtobufMessage (IRecipientFilter& recipients, const char * message_name, google::protobuf::Message& buffer)
58+ {
59+ engine->SendUserMessage (recipients, GetUserMessageIndex (message_name), buffer);
60+ }
61+ #else
62+ static bf_write* StartBitbufMessage (IRecipientFilter& recipients, const char * message_name)
63+ {
64+ #ifdef ENGINE_LEFT4DEAD2
65+ return engine->UserMessageBegin (&recipients, GetUserMessageIndex (message_name), message_name);
66+ #else
67+ return engine->UserMessageBegin (&recipients, GetUserMessageIndex (message_name));
68+ #endif
69+ }
70+ #endif
71+
72+ static int GetUserMessageIndex (const char * message_name)
4973{
74+ #ifdef USE_PROTOBUF
75+ return g_Cstrike15UsermessageHelpers.GetIndex (message_name);
76+ #else
5077 char sz_mname[256 ];
5178 int sizereturn;
5279 int index = 0 ;
@@ -59,8 +86,8 @@ static int GetUsermessageIndex(const char* message_name)
5986 index++;
6087 }
6188 return 0 ;
62- }
6389#endif
90+ }
6491
6592
6693// -----------------------------------------------------------------------------
@@ -80,9 +107,19 @@ void SendSayText2(IRecipientFilter& recipients, const char* message,
80107 const char * param3, const char * param4)
81108{
82109#ifdef USE_PROTOBUF
83-
110+ // TODO: Add textchatall
111+ CCSUsrMsg_SayText2 buffer = CCSUsrMsg_SayText2 ();
112+ buffer.set_msg_name (message);
113+ buffer.set_chat (chat);
114+ buffer.set_ent_idx (index);
115+ buffer.add_params (param1);
116+ buffer.add_params (param2);
117+ buffer.add_params (param3);
118+ buffer.add_params (param4);
119+ SendProtobufMessage (recipients, " SayText2" , buffer);
120+
84121#else
85- bf_write* buffer = engine-> UserMessageBegin (& recipients, GetUsermessageIndex ( " SayText2" ) );
122+ bf_write* buffer = StartBitbufMessage ( recipients, " SayText2" );
86123 buffer->WriteByte (index);
87124 buffer->WriteByte (chat);
88125 buffer->WriteString (message);
0 commit comments