diff --git a/tests/dGameTests/GameDependencies.h b/tests/dGameTests/GameDependencies.h index 480d1387f..112665f1a 100644 --- a/tests/dGameTests/GameDependencies.h +++ b/tests/dGameTests/GameDependencies.h @@ -17,12 +17,16 @@ class dZoneManager; class AssetManager; class dServerMock : public dServer { - RakNet::BitStream* sentBitStream = nullptr; + // A copy: the bitstreams sent are usually on the sender's stack + std::unique_ptr sentBitStream; public: dServerMock() {}; ~dServerMock() {}; - RakNet::BitStream* GetMostRecentBitStream() { return sentBitStream; }; - void Send(RakNet::BitStream& bitStream, const SystemAddress& sysAddr, bool broadcast) override { sentBitStream = &bitStream; }; + RakNet::BitStream* GetMostRecentBitStream() { return sentBitStream.get(); }; + void Send(RakNet::BitStream& bitStream, const SystemAddress& sysAddr, bool broadcast) override { + sentBitStream = std::make_unique(bitStream.GetData(), bitStream.GetNumberOfBytesUsed(), true); + sentBitStream->SetWriteOffset(bitStream.GetNumberOfBitsUsed()); + }; void SetZoneId(unsigned int zoneId) { mZoneID = zoneId; } };