Skip to content

Commit

Permalink
chore: upgrade hl2sdk, add protoc generation (#112)
Browse files Browse the repository at this point in the history
  • Loading branch information
roflmuffin authored Nov 22, 2023
1 parent 20f5028 commit 44a85d1
Show file tree
Hide file tree
Showing 5 changed files with 28 additions and 20 deletions.
25 changes: 15 additions & 10 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -96,16 +96,21 @@ set(PROTO_DIRS -I${CMAKE_CURRENT_SOURCE_DIR}/libraries/GameTracking-CS2/Protobuf
file(GLOB PROTOS "${CMAKE_CURRENT_SOURCE_DIR}/libraries/GameTracking-CS2/Protobufs/*.proto")

## Generate protobuf source & headers
#add_custom_command(
# OUTPUT protobuf_output_stamp
# COMMAND bash ${CMAKE_CURRENT_SOURCE_DIR}/src/protobuf/compile.sh
# COMMENT "Generating protobuf files using compile.sh script"
# WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/src/protobuf
# DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/protobuf/compile.sh
# VERBATIM
#)
#
#SET(SOURCE_FILES ${SOURCE_FILES} protobuf_output_stamp)
if (LINUX)
set(PROTOC_EXECUTABLE ${CMAKE_CURRENT_SOURCE_DIR}/libraries/hl2sdk-cs2/devtools/bin/linux/protoc)
elseif(WIN32)
set(PROTOC_EXECUTABLE ${CMAKE_CURRENT_SOURCE_DIR}/libraries/hl2sdk-cs2/devtools/bin/protoc.exe)
endif()

add_custom_command(
OUTPUT protobuf_output_stamp
COMMAND ${PROTOC_EXECUTABLE} --proto_path=thirdparty/protobuf-3.21.8/src --proto_path=common --cpp_out=common common/network_connection.proto
COMMENT "Generating protobuf file"
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/libraries/hl2sdk-cs2
VERBATIM
)

SET(SOURCE_FILES ${SOURCE_FILES} protobuf_output_stamp)

# Sources
add_library(${PROJECT_NAME} SHARED ${SOURCE_FILES} ${NATIVES_SOURCES} ${CONVERSIONS_SOURCES} ${CONVERSIONS_HEADERS})
Expand Down
2 changes: 1 addition & 1 deletion libraries/hl2sdk-cs2
Submodule hl2sdk-cs2 updated 3209 files
1 change: 1 addition & 0 deletions makefiles/shared.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ add_definitions(-DMETA_IS_SOURCE2)

include_directories(
${SOURCESDK}
${SOURCESDK}/thirdparty/protobuf-3.21.8/src
${SOURCESDK}/common
${SOURCESDK}/game/shared
${SOURCESDK}/game/server
Expand Down
16 changes: 9 additions & 7 deletions src/core/managers/player_manager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@

SH_DECL_HOOK4_void(IServerGameClients, ClientActive, SH_NOATTRIB, 0, CPlayerSlot, bool, const char*,
uint64);
SH_DECL_HOOK5_void(IServerGameClients, ClientDisconnect, SH_NOATTRIB, 0, CPlayerSlot, int,
SH_DECL_HOOK5_void(IServerGameClients, ClientDisconnect, SH_NOATTRIB, 0, CPlayerSlot, ENetworkDisconnectionReason,
const char*, uint64, const char*);
SH_DECL_HOOK4_void(IServerGameClients, ClientPutInServer, SH_NOATTRIB, 0, CPlayerSlot, char const*,
int, uint64);
Expand Down Expand Up @@ -119,8 +119,8 @@ bool PlayerManager::OnClientConnect(CPlayerSlot slot, const char* pszName, uint6
CPlayer* pPlayer = &m_players[client];

if (pPlayer->IsConnected()) {
OnClientDisconnect(slot, 0, pszName, xuid, pszNetworkID);
OnClientDisconnect_Post(slot, 0, pszName, xuid, pszNetworkID);
OnClientDisconnect(slot, ENetworkDisconnectionReason::NETWORK_DISCONNECT_INVALID, pszName, xuid, pszNetworkID);
OnClientDisconnect_Post(slot, ENetworkDisconnectionReason::NETWORK_DISCONNECT_INVALID, pszName, xuid, pszNetworkID);
}

pPlayer->Initialize(pszName, pszNetworkID, slot);
Expand Down Expand Up @@ -222,7 +222,7 @@ void PlayerManager::OnClientPutInServer(CPlayerSlot slot, char const* pszName, i
}

void PlayerManager::OnClientDisconnect(CPlayerSlot slot,
/* ENetworkDisconnectionReason */ int reason,
ENetworkDisconnectionReason reason,
const char* pszName, uint64 xuid, const char* pszNetworkID)
{
CSSHARP_CORE_TRACE("[PlayerManager][OnClientDisconnect] - {}, {}, {}", slot.Get(), pszName,
Expand All @@ -234,6 +234,7 @@ void PlayerManager::OnClientDisconnect(CPlayerSlot slot,
if (pPlayer->IsConnected()) {
m_on_client_disconnect_callback->ScriptContext().Reset();
m_on_client_disconnect_callback->ScriptContext().Push(pPlayer->m_slot.Get());
m_on_client_disconnect_callback->ScriptContext().Push(reason);
m_on_client_disconnect_callback->Execute();
}

Expand All @@ -245,7 +246,7 @@ void PlayerManager::OnClientDisconnect(CPlayerSlot slot,
}

void PlayerManager::OnClientDisconnect_Post(CPlayerSlot slot,
/* ENetworkDisconnectionReason */ int reason,
ENetworkDisconnectionReason reason,
const char* pszName, uint64 xuid,
const char* pszNetworkID) const
{
Expand All @@ -263,6 +264,7 @@ void PlayerManager::OnClientDisconnect_Post(CPlayerSlot slot,

m_on_client_disconnect_post_callback->ScriptContext().Reset();
m_on_client_disconnect_post_callback->ScriptContext().Push(pPlayer->m_slot.Get());
m_on_client_disconnect_post_callback->ScriptContext().Push(reason);
m_on_client_disconnect_post_callback->Execute();
}

Expand All @@ -272,9 +274,9 @@ void PlayerManager::OnLevelEnd()

for (int i = 0; i <= m_max_clients; i++) {
if (m_players[i].IsConnected()) {
OnClientDisconnect(m_players[i].m_slot, 0, m_players[i].GetName(), 0,
OnClientDisconnect(m_players[i].m_slot, ENetworkDisconnectionReason::NETWORK_DISCONNECT_INVALID, m_players[i].GetName(), 0,
m_players[i].GetIpAddress());
OnClientDisconnect_Post(m_players[i].m_slot, 0, m_players[i].GetName(), 0,
OnClientDisconnect_Post(m_players[i].m_slot, ENetworkDisconnectionReason::NETWORK_DISCONNECT_INVALID, m_players[i].GetName(), 0,
m_players[i].GetIpAddress());
}
}
Expand Down
4 changes: 2 additions & 2 deletions src/core/managers/player_manager.h
Original file line number Diff line number Diff line change
Expand Up @@ -130,12 +130,12 @@ class PlayerManager : public GlobalClass {
CBufferString *pRejectReason);
void OnClientPutInServer(CPlayerSlot slot, char const *pszName, int type, uint64 xuid);
void OnClientDisconnect(CPlayerSlot slot,
/* ENetworkDisconnectionReason */ int reason,
ENetworkDisconnectionReason reason,
const char *pszName,
uint64 xuid,
const char *pszNetworkID);
void OnClientDisconnect_Post(CPlayerSlot slot,
/* ENetworkDisconnectionReason */ int reason,
ENetworkDisconnectionReason reason,
const char *pszName,
uint64 xuid,
const char *pszNetworkID) const;
Expand Down

0 comments on commit 44a85d1

Please sign in to comment.