From 7ccb819f867493f8ec202ea3b39c94c198c64584 Mon Sep 17 00:00:00 2001 From: JustSomePwner Date: Thu, 30 Aug 2018 14:01:54 +0200 Subject: first --- gmod/netvar_proxy.hpp | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 gmod/netvar_proxy.hpp (limited to 'gmod/netvar_proxy.hpp') diff --git a/gmod/netvar_proxy.hpp b/gmod/netvar_proxy.hpp new file mode 100644 index 0000000..cb329c3 --- /dev/null +++ b/gmod/netvar_proxy.hpp @@ -0,0 +1,37 @@ +#pragma once +#include "Valve/dt_recv.h" + +//dont leave things out of namespaces +namespace hooks +{ + class c_netvar_proxy { + public: + c_netvar_proxy( RecvProp* target_property, RecvVarProxyFn new_proxy ) { + m_target = target_property; + m_original = target_property->m_ProxyFn; + m_target->m_ProxyFn = new_proxy; + } + + c_netvar_proxy( ) = default; + + void init( RecvProp* target, RecvVarProxyFn new_proxy ) { + m_target = target; + m_original = target->m_ProxyFn; + m_target->m_ProxyFn = new_proxy; + } + + ~c_netvar_proxy( ) { + if( !m_target ) return; + m_target->m_ProxyFn = m_original; + } + + RecvVarProxyFn get_old_function( ) const { + return m_original; + } + + private: + //overcomplicated... + RecvProp* m_target; + RecvVarProxyFn m_original; + }; +} \ No newline at end of file -- cgit v1.2.3