diff --git a/lib/Connection.cpp b/lib/Connection.cpp index 3db021050..8a04eaaf5 100644 --- a/lib/Connection.cpp +++ b/lib/Connection.cpp @@ -263,8 +263,7 @@ void CConnection::prepareForSendingHeroes() { loadedPointers.clear(); savedPointers.clear(); - CISer::smartVectorMembersSerialization = false; - COSer::smartVectorMembersSerialization = false; + disableSmartVectorMemberSerialization(); enableSmartPointerSerializatoin(); } @@ -272,11 +271,20 @@ void CConnection::enterPregameConnectionMode() { loadedPointers.clear(); savedPointers.clear(); - CISer::smartVectorMembersSerialization = false; - COSer::smartVectorMembersSerialization = false; + disableSmartVectorMemberSerialization(); disableSmartPointerSerialization(); } +void CConnection::disableSmartVectorMemberSerialization() +{ + smartVectorMembersSerialization = false; +} + +void CConnection::enableSmartVectorMemberSerializatoin() +{ + smartVectorMembersSerialization = true; +} + CSaveFile::CSaveFile( const std::string &fname ) { registerTypes(*this); diff --git a/lib/Connection.h b/lib/Connection.h index 6ce56f4e4..40dad4a6e 100644 --- a/lib/Connection.h +++ b/lib/Connection.h @@ -1354,6 +1354,8 @@ public: void enableStackSendingByID(); void disableSmartPointerSerialization(); void enableSmartPointerSerializatoin(); + void disableSmartVectorMemberSerialization(); + void enableSmartVectorMemberSerializatoin(); void prepareForSendingHeroes(); //disables sending vectorised, enables smart pointer serialization, clears saved/loaded ptr cache void enterPregameConnectionMode(); diff --git a/server/CVCMIServer.cpp b/server/CVCMIServer.cpp index a7e6aaf2e..55a9273f3 100644 --- a/server/CVCMIServer.cpp +++ b/server/CVCMIServer.cpp @@ -205,10 +205,10 @@ void CPregameServer::connectionAccepted(const boost::system::error_code& ec) initConnection(pc); upcomingConnection = nullptr; - *pc << (ui8)pc->connectionID << curmap; - startListeningThread(pc); + *pc << (ui8)pc->connectionID << curmap; + announceTxt(pc->name + " joins the game"); auto pj = new PlayerJoined(); pj->playerName = pc->name;