Skip to content

Commit ae09196

Browse files
committed
Add symbols for AdvancedLuaErrorReporter
1 parent 237b0ca commit ae09196

File tree

5 files changed

+41
-1
lines changed

5 files changed

+41
-1
lines changed

helpers_extended/include/GarrysMod/FunctionPointers.hpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ class GModDataPack;
3131
struct netsocket_t;
3232
class LuaFile;
3333
class CSteam3Server;
34+
struct lua_State;
3435

3536
namespace FunctionPointers
3637
{
@@ -68,4 +69,7 @@ GModDataPack_AddOrUpdateFile_t GModDataPack_AddOrUpdateFile( );
6869
typedef CSteam3Server *( *Steam3Server_t )( );
6970
Steam3Server_t Steam3Server( );
7071

72+
typedef int ( *AdvancedLuaErrorReporter_t )( lua_State *L );
73+
AdvancedLuaErrorReporter_t AdvancedLuaErrorReporter( );
74+
7175
}

helpers_extended/include/GarrysMod/Symbols.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,5 +24,6 @@ extern const Symbol GMOD_GetNetSocket;
2424
extern const std::vector<Symbol> GModDataPack_AddOrUpdateFile;
2525
extern const Symbol Steam3Server;
2626
extern const std::vector<Symbol> GlobalVars;
27+
extern const std::vector<Symbol> AdvancedLuaErrorReporter;
2728

2829
}

helpers_extended/source/FunctionPointers.cpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -240,4 +240,18 @@ namespace FunctionPointers
240240

241241
return func_pointer;
242242
}
243+
244+
AdvancedLuaErrorReporter_t AdvancedLuaErrorReporter( )
245+
{
246+
static AdvancedLuaErrorReporter_t func_pointer = nullptr;
247+
if( func_pointer == nullptr )
248+
{
249+
SourceSDK::FactoryLoader lua_shared_loader( "lua_shared" );
250+
func_pointer = ResolveSymbols<AdvancedLuaErrorReporter_t>(
251+
lua_shared_loader, Symbols::AdvancedLuaErrorReporter
252+
);
253+
}
254+
255+
return func_pointer;
256+
}
243257
}

helpers_extended/source/Symbols.cpp

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,8 @@ namespace Symbols
7575
Symbol::FromSignature( "\x2A\x2A\x2A\x2A\x41\x8B\xD4\x48\x8D\x4C\x24\x2A\xE8\x2A\x2A\x2A\x2A\x41\x8B\xD4\x48" )
7676
};
7777

78+
const std::vector<Symbol> AdvancedLuaErrorReporter = { Symbol::FromName( "?AdvancedLuaErrorReporter@@YAHPEAUlua_State@@@Z" ) };
79+
7880
#elif defined ARCHITECTURE_X86
7981

8082
const std::vector<Symbol> CBasePlayer_HandleClientLuaError = {
@@ -156,6 +158,11 @@ namespace Symbols
156158
Symbol::FromSignature( "\x2A\x2A\x2A\x2A\x8D\x45\x2A\x6A\x01\x50\xE8\x2A\x2A\x2A\x2A\x8D\x45" )
157159
};
158160

161+
const std::vector<Symbol> AdvancedLuaErrorReporter = {
162+
Symbol::FromName( "?AdvancedLuaErrorReporter@@YAHPAUlua_State@@@Z" ),
163+
Symbol::FromSignature( "\x55\x8B\xEC\x8B\x0D\x2A\x2A\x2A\x2A\x83\xEC\x4C" )
164+
};
165+
159166
#endif
160167

161168
#elif defined SYSTEM_LINUX
@@ -327,6 +334,18 @@ namespace Symbols
327334

328335
};
329336

337+
const std::vector<Symbol> AdvancedLuaErrorReporter = {
338+
339+
#if defined ARCHITECTURE_X86
340+
341+
Symbol::FromSignature( "\x55\x89\xE5\x57\x56\x53\x83\xEC\x7C\x8B\x15\x2A\x2A\x2A\x2A\x8B\x7D\x2A" ),
342+
343+
#endif
344+
345+
Symbol::FromName( "_Z24AdvancedLuaErrorReporterP9lua_State" )
346+
347+
};
348+
330349
#elif defined SYSTEM_MACOSX
331350

332351
const std::vector<Symbol> CBasePlayer_HandleClientLuaError = {
@@ -409,6 +428,8 @@ namespace Symbols
409428

410429
};
411430

431+
const std::vector<Symbol> AdvancedLuaErrorReporter = { Symbol::FromName( "_Z24AdvancedLuaErrorReporterP9lua_State" ) };
432+
412433
#endif
413434

414435
}

source/ABICompatibility.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#include <Platform.hpp>
22

33
// Visual Studio 2015 to Visual Studio 2022
4-
#if defined SYSTEM_WINDOWS && ( _MSC_VER < 1900 || _MSC_VER > 1933 )
4+
#if defined SYSTEM_WINDOWS && ( _MSC_VER < 1900 || _MSC_VER > 1934 )
55

66
#error The only supported compilation platforms for this project on Windows are Visual Studio 2015, 2017, 2019 and 2022 (for ABI compatibility reasons).
77

0 commit comments

Comments
 (0)