core/UserMessages.cpp
changeset 3786 cbbc2354ef1b
parent 3779 b269413e1258
child 3819 d17aed3d46bf
     1.1 --- a/core/UserMessages.cpp	Mon Feb 11 11:17:31 2013 -0500
     1.2 +++ b/core/UserMessages.cpp	Mon Feb 11 15:11:04 2013 -0500
     1.3 @@ -502,14 +502,15 @@
     1.4  		int size = msg.ByteSize();
     1.5  		uint8 *data = (uint8 *)stackalloc(size);
     1.6  		msg.SerializePartialToArray(data, size);
     1.7 -		m_InterceptBuffer->ParseFromArray(data, size);
     1.8 +		m_InterceptBuffer->ParsePartialFromArray(data, size);
     1.9  	}
    1.10  	else
    1.11  	{
    1.12  		m_FakeEngineBuffer = &const_cast<protobuf::Message &>(msg);
    1.13 -		OnStartMessage_Post(&filter, msg_type, g_Cstrike15UsermessageHelpers.GetName(msg_type));
    1.14  	}
    1.15  
    1.16 +	OnStartMessage_Post(&filter, msg_type, g_Cstrike15UsermessageHelpers.GetName(msg_type));
    1.17 +
    1.18  	OnMessageEnd_Pre();
    1.19  	if (m_FakeMetaRes == MRES_SUPERCEDE)
    1.20  		RETURN_META(MRES_SUPERCEDE);
    1.21 @@ -593,7 +594,10 @@
    1.22  	}
    1.23  
    1.24  #ifdef USE_PROTOBUF_USERMESSAGES
    1.25 -	m_OrigBuffer = m_FakeEngineBuffer;
    1.26 +	if (m_FakeMetaRes == MRES_SUPERCEDE)
    1.27 +		m_OrigBuffer = m_InterceptBuffer;
    1.28 +	else
    1.29 +		m_OrigBuffer = m_FakeEngineBuffer;
    1.30  #else
    1.31  	m_OrigBuffer = META_RESULT_ORIG_RET(bf_write *);
    1.32  #endif
    1.33 @@ -743,8 +747,6 @@
    1.34  	{
    1.35  #if SOURCE_ENGINE == SE_CSGO
    1.36  		ENGINE_CALL(SendUserMessage)(static_cast<IRecipientFilter &>(*m_CurRecFilter), m_CurId, *m_InterceptBuffer);
    1.37 -		delete m_InterceptBuffer;
    1.38 -		m_InterceptBuffer = NULL;
    1.39  #else
    1.40  		bf_write *engine_bfw;
    1.41  #if SOURCE_ENGINE >= SE_LEFT4DEAD
    1.42 @@ -764,7 +766,7 @@
    1.43  		uint8 *data = (uint8 *)stackalloc(size);
    1.44  		m_OrigBuffer->SerializePartialToArray(data, size);
    1.45  		protobuf::Message *pTempMsg = g_Cstrike15UsermessageHelpers.GetPrototype(m_CurId)->New();
    1.46 -		pTempMsg->ParseFromArray(data, size);
    1.47 +		pTempMsg->ParsePartialFromArray(data, size);
    1.48  #else
    1.49  		bf_write *pTempMsg = m_OrigBuffer;
    1.50  #endif