From 28f41cf689def99fb586bfca47b7e1786227a5a2 Mon Sep 17 00:00:00 2001 From: navewindre Date: Fri, 12 Jul 2024 05:40:41 +0200 Subject: base shit --- src/cs2/cs2.h | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 src/cs2/cs2.h (limited to 'src/cs2/cs2.h') diff --git a/src/cs2/cs2.h b/src/cs2/cs2.h new file mode 100644 index 0000000..58eba14 --- /dev/null +++ b/src/cs2/cs2.h @@ -0,0 +1,46 @@ +#pragma once + +#include "../process64.h" + +class CS2 : public PROCESS64 { +public: + CS2() : PROCESS64( "cs2.exe" ) {}; + + bool open() { + if( !PROCESS64::open() ) + return false; + + mod.client = get_module64( "client.dll"fnv ); + mod.engine = get_module64( "engine.dll"fnv ); + mod.schema = get_module64( "schemasystem.dll"fnv ); + + // todo: handle this using loader + iface.client = get_iface( "Source2Client0" ); + iface.engine = get_iface( "Source2EngineToClient0" ); + + return true; + } + + IFACE_ENTRY get_iface( const char* name ) { + VECTOR entries = iface_get_all( this ); + for( auto it : entries ) { + if( strncmp( it.name, name, strlen( name ) ) == 0 ) { + clog( "iface %s: [%llx]\n", it.name.data, it.ptr ); + return it; + } + } + + return {}; + } + + struct { + MODULE_ENTRY client; + MODULE_ENTRY engine; + MODULE_ENTRY schema; + } mod; + + struct { + IFACE_ENTRY client; + IFACE_ENTRY engine; + } iface; +}; \ No newline at end of file -- cgit v1.2.3