diff --git a/Source/Engine/Networking/NetworkManager.cpp b/Source/Engine/Networking/NetworkManager.cpp index 6a18bf749..268476452 100644 --- a/Source/Engine/Networking/NetworkManager.cpp +++ b/Source/Engine/Networking/NetworkManager.cpp @@ -96,12 +96,18 @@ NetworkMessage NetworkManager::CreateMessage() const uint32 messageId = MessagePool.Pop(); uint8* messageBuffer = GetMessageBuffer(messageId); - return NetworkMessage { messageBuffer, Config.MessageSize, 0, 0 }; + return NetworkMessage { messageBuffer, messageId, Config.MessageSize, 0, 0 }; } void NetworkManager::RecycleMessage(const NetworkMessage& message) { ASSERT(message.IsValid()); +#ifdef BUILD_DEBUG + ASSERT(MessagePool.Contains(message.MessageId) == false); +#endif + + // Return the message id + MessagePool.Push(message.MessageId); } void NetworkManager::CreateMessageBuffers() diff --git a/Source/Engine/Networking/NetworkMessage.h b/Source/Engine/Networking/NetworkMessage.h index cd55e9cbe..ec6a363bb 100644 --- a/Source/Engine/Networking/NetworkMessage.h +++ b/Source/Engine/Networking/NetworkMessage.h @@ -10,6 +10,9 @@ public: API_FIELD() uint8* Buffer; + API_FIELD() + uint32 MessageId; // TODO: Make it read-only + API_FIELD() uint32 BufferSize;