Skip to content

Commit 1147e73

Browse files
committed
Use new SourceSDK FactoryLoader and ModuleLoader
Remove usage of Helpers::GetBinaryFileName
1 parent 1129b5d commit 1147e73

File tree

6 files changed

+23
-45
lines changed

6 files changed

+23
-45
lines changed

source/hooks.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,8 @@ namespace Hooks
9595
SymbolFinder symfinder;
9696

9797
ProcessMessages_original =
98-
reinterpret_cast<ProcessMessages_t>( symfinder.ResolveOnBinary(
99-
global::engine_lib.c_str( ),
98+
reinterpret_cast<ProcessMessages_t>( symfinder.Resolve(
99+
global::engine_loader.GetModuleLoader( ).GetModule( ),
100100
ProcessMessages_sig,
101101
ProcessMessages_siglen
102102
) );

source/main.cpp

Lines changed: 7 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
#endif
2525

2626
#include <scanning/symbolfinder.hpp>
27-
#include <GarrysMod/Interfaces.hpp>
2827
#include <interface.h>
2928
#include <eiface.h>
3029
#include <cdll_int.h>
@@ -62,32 +61,13 @@ namespace global
6261

6362
static bool loaded = false;
6463

65-
const std::string engine_lib = Helpers::GetBinaryFileName(
66-
"engine",
67-
false,
68-
IS_SERVERSIDE,
69-
"bin/"
70-
);
71-
72-
const std::string client_lib = Helpers::GetBinaryFileName(
73-
"client",
74-
false,
75-
IS_SERVERSIDE,
76-
"garrysmod/bin/"
77-
);
78-
79-
const std::string server_lib = Helpers::GetBinaryFileName(
80-
"server",
81-
false,
82-
IS_SERVERSIDE,
83-
"garrysmod/bin/"
84-
);
85-
8664
const char *tostring_format = "%s: %p";
8765

8866
GarrysMod::Lua::ILuaBase *lua = nullptr;
8967

90-
SourceSDK::FactoryLoader engine_loader( engine_lib, false, false );
68+
const SourceSDK::FactoryLoader engine_loader( "engine" );
69+
const SourceSDK::ModuleLoader client_loader( "client" );
70+
const SourceSDK::ModuleLoader server_loader( "server" );
9171

9272
IVEngineServer *engine_server = nullptr;
9373
IVEngineClient *engine_client = nullptr;
@@ -178,8 +158,10 @@ GMOD_MODULE_OPEN( )
178158
{
179159
SymbolFinder symfinder;
180160

181-
pserver = reinterpret_cast<IServer **>( symfinder.ResolveOnBinary(
182-
global::engine_lib.c_str( ), global::IServer_sig, global::IServer_siglen
161+
pserver = reinterpret_cast<IServer **>( symfinder.Resolve(
162+
global::engine_loader.GetModuleLoader( ).GetModule( ),
163+
global::IServer_sig,
164+
global::IServer_siglen
183165
) );
184166
}
185167

source/main.hpp

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
#include <lua.hpp>
55
#include <stdint.h>
66
#include <string>
7-
#include <GarrysMod/Interfaces.hpp>
7+
#include <GarrysMod/FactoryLoader.hpp>
88
#include <Platform.hpp>
99

1010
class IVEngineServer;
@@ -21,17 +21,13 @@ namespace GarrysMod
2121

2222
namespace global
2323
{
24-
extern const std::string engine_lib;
25-
26-
extern const std::string client_lib;
27-
28-
extern const std::string server_lib;
29-
3024
extern const char *tostring_format;
3125

3226
extern GarrysMod::Lua::ILuaBase *lua;
3327

34-
extern SourceSDK::FactoryLoader engine_loader;
28+
extern const SourceSDK::FactoryLoader engine_loader;
29+
extern const SourceSDK::ModuleLoader client_loader;
30+
extern const SourceSDK::ModuleLoader server_loader;
3531

3632
extern IVEngineServer *engine_server;
3733

source/netmessage.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -434,14 +434,14 @@ namespace NetMessage
434434
{
435435
SymbolFinder symfinder;
436436

437-
CBaseClient_ConnectionStart = static_cast<const uint8_t *>( symfinder.ResolveOnBinary(
438-
global::engine_lib.c_str( ),
437+
CBaseClient_ConnectionStart = static_cast<const uint8_t *>( symfinder.Resolve(
438+
global::engine_loader.GetModuleLoader( ).GetModule( ),
439439
CBaseClient_ConnectionStart_sig,
440440
CBaseClient_ConnectionStart_siglen
441441
) );
442442

443-
CBaseClientState_ConnectionStart = static_cast<const uint8_t *>( symfinder.ResolveOnBinary(
444-
global::engine_lib.c_str( ),
443+
CBaseClientState_ConnectionStart = static_cast<const uint8_t *>( symfinder.Resolve(
444+
global::engine_loader.GetModuleLoader( ).GetModule( ),
445445
CBaseClientState_ConnectionStart_sig,
446446
CBaseClientState_ConnectionStart_siglen,
447447
// starting point for sigscan

source/server/datapack.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ namespace DataPack
2525
SymbolFinder symfinder;
2626

2727
SendFileToClient_original =
28-
reinterpret_cast<SendFileToClient_t>( symfinder.ResolveOnBinary(
29-
global::server_lib.c_str( ),
28+
reinterpret_cast<SendFileToClient_t>( symfinder.Resolve(
29+
global::server_loader.GetModule( ),
3030
SendFileToClient_sig,
3131
SendFileToClient_siglen
3232
) );

source/server/gametags.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,17 +33,17 @@ namespace GameTags
3333
SymbolFinder symfinder;
3434

3535
RecalculateTags_original =
36-
reinterpret_cast<RecalculateTags_t>( symfinder.ResolveOnBinary(
37-
global::engine_lib.c_str( ),
36+
reinterpret_cast<RecalculateTags_t>( symfinder.Resolve(
37+
global::engine_loader.GetModuleLoader( ).GetModule( ),
3838
RecalculateTags_sig,
3939
RecalculateTags_siglen
4040
) );
4141

4242
#if defined SYSTEM_WINDOWS
4343

4444
CSteamGameServerAPIContext **gameserver_context_pointer =
45-
reinterpret_cast<CSteamGameServerAPIContext **>( symfinder.ResolveOnBinary(
46-
global::server_lib.c_str( ),
45+
reinterpret_cast<CSteamGameServerAPIContext **>( symfinder.Resolve(
46+
global::server_loader.GetModule( ),
4747
SteamGameServerAPIContext_sig,
4848
SteamGameServerAPIContext_siglen
4949
) );

0 commit comments

Comments
 (0)