Skip to content

Commit a6b2e83

Browse files
committed
Added helper functions for usermessages
1 parent 7849b5a commit a6b2e83

3 files changed

Lines changed: 45 additions & 7 deletions

File tree

src/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -437,6 +437,7 @@ Set(SOURCEPYTHON_MODULE_FILES
437437

438438
${SOURCEPYTHON_MESSAGES_MODULE_HEADERS}
439439
${SOURCEPYTHON_MESSAGES_MODULE_SOURCES}
440+
${SOURCEPYTHON_MESSAGES_MODULE_GAME_SOURCES}
440441

441442
${SOURCEPYTHON_NET_CHANNEL_MODULE_HEADERS}
442443
${SOURCEPYTHON_NET_CHANNEL_MODULE_SOURCES}

src/core/modules/messages/messages.cpp

Lines changed: 43 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -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);

src/makefiles/branch/csgo.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,4 @@ include("makefiles/branch/${BRANCH}/usermessages.cmake")
1212
# Set the engine version.
1313
# ------------------------------------------------------------------
1414
Set(SOURCE_ENGINE "csgo")
15-
add_definitions(-DENGINE_CSGO)
15+
add_definitions(-DENGINE_CSGO -DUSE_PROTOBUF)

0 commit comments

Comments
 (0)