From a7c9fc2f6e027ec1c481cde0eb5711216c79227c Mon Sep 17 00:00:00 2001 From: Robert MacGregor Date: Fri, 26 Jun 2015 23:24:24 -0400 Subject: [PATCH] WatchDog implementation; moved Bahke's server process code into a generalized mod loader implementation to allow loaded mods to hook into the server process --- .../TSExtension/source/DXConCmds.cpp | 35 +-- .../TSExtension/source/dllmain.cpp | 2 - ModLoader/CoreModSystem.sln | 20 -- ModLoader/CoreModSystem.suo | Bin 5120 -> 0 bytes ModLoader/CoreModSystem.v11.suo | Bin 28672 -> 0 bytes ModLoader/CoreModSystem.v12.suo | Bin 35840 -> 0 bytes ModLoader/ModLoader.vcxproj | 135 ----------- ModLoader/ModLoader.vcxproj.filters | 30 --- ModLoader/Modloader.sln | 20 ++ ModLoader/Modloader.suo | Bin 0 -> 12800 bytes .../Modloader/Debug/Modloader.lastbuildstate | 2 + ModLoader/Modloader/Debug/vc100.idb | Bin 0 -> 789504 bytes ModLoader/Modloader/Modloader.vcxproj | 90 +++++++ ModLoader/Modloader/Modloader.vcxproj.filters | 39 ++++ ModLoader/Modloader/Modloader.vcxproj.user | 3 + ModLoader/{ => Modloader}/include/modLoader.h | 0 ModLoader/Modloader/include/stdafx.h | 8 + ModLoader/{ => Modloader}/include/t2api.h | 220 +++++++++--------- .../{ => Modloader}/source/modLoader.cpp | 31 +++ ModLoader/{ => Modloader}/source/t2api.cpp | 178 +++++++------- ModLoader/{ => Modloader}/source/t2dll.cpp | 120 ++++++---- 21 files changed, 466 insertions(+), 467 deletions(-) delete mode 100755 ModLoader/CoreModSystem.sln delete mode 100755 ModLoader/CoreModSystem.suo delete mode 100755 ModLoader/CoreModSystem.v11.suo delete mode 100644 ModLoader/CoreModSystem.v12.suo delete mode 100755 ModLoader/ModLoader.vcxproj delete mode 100755 ModLoader/ModLoader.vcxproj.filters create mode 100644 ModLoader/Modloader.sln create mode 100644 ModLoader/Modloader.suo create mode 100644 ModLoader/Modloader/Debug/Modloader.lastbuildstate create mode 100644 ModLoader/Modloader/Debug/vc100.idb create mode 100644 ModLoader/Modloader/Modloader.vcxproj create mode 100644 ModLoader/Modloader/Modloader.vcxproj.filters create mode 100644 ModLoader/Modloader/Modloader.vcxproj.user rename ModLoader/{ => Modloader}/include/modLoader.h (100%) create mode 100644 ModLoader/Modloader/include/stdafx.h rename ModLoader/{ => Modloader}/include/t2api.h (96%) mode change 100755 => 100644 rename ModLoader/{ => Modloader}/source/modLoader.cpp (56%) rename ModLoader/{ => Modloader}/source/t2api.cpp (96%) mode change 100755 => 100644 rename ModLoader/{ => Modloader}/source/t2dll.cpp (64%) mode change 100755 => 100644 diff --git a/Mod Sources/TSExtension/TSExtension/source/DXConCmds.cpp b/Mod Sources/TSExtension/TSExtension/source/DXConCmds.cpp index 18e29f1..5b3365c 100644 --- a/Mod Sources/TSExtension/TSExtension/source/DXConCmds.cpp +++ b/Mod Sources/TSExtension/TSExtension/source/DXConCmds.cpp @@ -1,40 +1,9 @@ /** * */ -#define endian(hex) (((hex & 0x000000FF) << 24)+((hex & 0x0000FF00) << 8)+((hex & 0x00FF0000)>>8)+((hex & 0xFF000000) >> 24)) #include #include -void serverProcessReplacement(unsigned int timeDelta) { - unsigned int servertickaddr=0x602350; - unsigned int serverthisptr=0x9E5EC0; - char test[256]=""; - sprintf (test,"TSTick(%f);",(float)timeDelta/1000); - Con::evaluate(test,false,NULL,false); - __asm - { - mov ecx,serverthisptr - push timeDelta - call servertickaddr - } - - return; -} -const char* congetServPAddr(Linker::SimObject *obj, S32 argc, const char *argv[]) { - char test[256] = ""; - char test2[256]=""; - int spr=(signed int)*serverProcessReplacement; - sprintf(test2,"B8%08XFFD089EC5DC3",endian(spr)); - /*test2[0]=test[6]; - test2[1]=test[7]; - test2[2]=test[4]; - test2[3]=test[5]; - test2[4]=test[2]; - test2[5]=test[3]; - test2[6]=test[0]; - test2[7]=test[1]; - test2[8]=0;*/ - return test2; -} + const char *conGetAddress(Linker::SimObject *obj, S32 argc, const char *argv[]) { // Hmm... @@ -42,6 +11,7 @@ const char *conGetAddress(Linker::SimObject *obj, S32 argc, const char *argv[]) sprintf(result, "%x", obj); return result; } + bool conShapeBaseSetCloakValue(Linker::SimObject *obj, S32 argc, const char* argv[]) { DX::ShapeBase operand = DX::ShapeBase((unsigned int)obj); @@ -60,6 +30,7 @@ bool conPlayerGetJumpingState(Linker::SimObject *obj, S32 argc, const char* argv return operand.is_jumping; } + bool conPlayerGetJettingState(Linker::SimObject *obj, S32 argc, const char* argv[]) { DX::Player operand = DX::Player((unsigned int)obj); diff --git a/Mod Sources/TSExtension/TSExtension/source/dllmain.cpp b/Mod Sources/TSExtension/TSExtension/source/dllmain.cpp index 45a4b51..cf4b2b4 100644 --- a/Mod Sources/TSExtension/TSExtension/source/dllmain.cpp +++ b/Mod Sources/TSExtension/TSExtension/source/dllmain.cpp @@ -75,8 +75,6 @@ extern "C" // General Con::addMethodS(NULL, "sprintf", &conSprintf,"Formats a string. See the C sprintf.", 2, 20); Con::addMethodB(NULL, "tsExtensionUpdate", &conTSExtensionUpdate,"Updates the TSExtension.", 1, 1); - Con::addMethodS(NULL, "getServPAddr",&congetServPAddr,"Gets the memPatch data for ServerProcess",1,1); - // Add this Gvar to signify that TSExtension is active diff --git a/ModLoader/CoreModSystem.sln b/ModLoader/CoreModSystem.sln deleted file mode 100755 index 20d3fd5..0000000 --- a/ModLoader/CoreModSystem.sln +++ /dev/null @@ -1,20 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Express 2012 for Windows Desktop -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CoreModSystem", "ModLoader.vcxproj", "{8740E782-7AC2-4A57-85D5-592C914C5285}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {8740E782-7AC2-4A57-85D5-592C914C5285}.Debug|Win32.ActiveCfg = Debug|Win32 - {8740E782-7AC2-4A57-85D5-592C914C5285}.Debug|Win32.Build.0 = Debug|Win32 - {8740E782-7AC2-4A57-85D5-592C914C5285}.Release|Win32.ActiveCfg = Release|Win32 - {8740E782-7AC2-4A57-85D5-592C914C5285}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/ModLoader/CoreModSystem.suo b/ModLoader/CoreModSystem.suo deleted file mode 100755 index 16edfd074f7238ff8ee396d280a5cdfe5ad848b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5120 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 K|Co{QfBYYMy~+vz diff --git a/ModLoader/CoreModSystem.v12.suo b/ModLoader/CoreModSystem.v12.suo deleted file mode 100644 index f54e6fedf90d94e73a8ac87dcb23be29e53522d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35840 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 F{U1oeZsh;~ diff --git a/ModLoader/ModLoader.vcxproj b/ModLoader/ModLoader.vcxproj deleted file mode 100755 index e4dde57..0000000 --- a/ModLoader/ModLoader.vcxproj +++ /dev/null @@ -1,135 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {8740E782-7AC2-4A57-85D5-592C914C5285} - t2dll - Win32Proj - CoreModSystem - - - - DynamicLibrary - Unicode - true - - - DynamicLibrary - Unicode - - - - - - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - $(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;include - $(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(WindowsSdkDir)lib;$(FrameworkSDKDir)\lib;lib\; - $(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;include - $(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(WindowsSdkDir)lib;$(FrameworkSDKDir)\lib;lib\; - t2dll - t2dll - - - - Disabled - C:\Documents and Settings\Linker\My Documents\Code\t2dll\lualib\include;%(AdditionalIncludeDirectories) - WIN32;BULLET_WINE;_DEBUG;_WINDOWS;_USRDLL;T2DLL_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - NotUsing - Level3 - ProgramDatabase - - - %(AdditionalDependencies) - - - %(DelayLoadDLLs) - true - Windows - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - C:\Documents and Settings\Linker\My Documents\Code\t2dll\lualib\include;%(AdditionalIncludeDirectories) - WIN32;BULLET_WINE;NDEBUG;_WINDOWS;_USRDLL;T2DLL_EXPORTS;%(PreprocessorDefinitions) - MultiThreadedDLL - NotUsing - Level3 - ProgramDatabase - - - %(AdditionalDependencies) - - - - - %(DelayLoadDLLs) - true - Windows - true - true - MachineX86 - - - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ModLoader/ModLoader.vcxproj.filters b/ModLoader/ModLoader.vcxproj.filters deleted file mode 100755 index 5fe155e..0000000 --- a/ModLoader/ModLoader.vcxproj.filters +++ /dev/null @@ -1,30 +0,0 @@ - - - - - {47c39120-a88e-47c4-b0a8-4bf738d54a5c} - - - {9cb2992f-6959-4153-a4c4-d9ea4d86347d} - - - - - Include - - - Include - - - - - Source - - - Source - - - Source - - - \ No newline at end of file diff --git a/ModLoader/Modloader.sln b/ModLoader/Modloader.sln new file mode 100644 index 0000000..47b1275 --- /dev/null +++ b/ModLoader/Modloader.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C++ Express 2010 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Modloader", "Modloader\Modloader.vcxproj", "{10159605-BFF5-496F-8C23-0A1FB9850E55}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {10159605-BFF5-496F-8C23-0A1FB9850E55}.Debug|Win32.ActiveCfg = Debug|Win32 + {10159605-BFF5-496F-8C23-0A1FB9850E55}.Debug|Win32.Build.0 = Debug|Win32 + {10159605-BFF5-496F-8C23-0A1FB9850E55}.Release|Win32.ActiveCfg = Release|Win32 + {10159605-BFF5-496F-8C23-0A1FB9850E55}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/ModLoader/Modloader.suo b/ModLoader/Modloader.suo new file mode 100644 index 0000000000000000000000000000000000000000..afaf197f13b56622935d428274a5f2dbae1abc76 GIT binary patch literal 12800 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 literal 0 HcmV?d00001 diff --git a/ModLoader/Modloader/Debug/Modloader.lastbuildstate b/ModLoader/Modloader/Debug/Modloader.lastbuildstate new file mode 100644 index 0000000..2f7f7e3 --- /dev/null +++ b/ModLoader/Modloader/Debug/Modloader.lastbuildstate @@ -0,0 +1,2 @@ +#v4.0:v100 +Debug|Win32|C:\Users\Robert MacGregor\Documents\T2-CPP\ModLoader\| diff --git a/ModLoader/Modloader/Debug/vc100.idb b/ModLoader/Modloader/Debug/vc100.idb new file mode 100644 index 0000000000000000000000000000000000000000..943b061fbdf4a99c5302a47d8bc9c06fe852b82a GIT binary patch literal 789504 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%0A4Vr&RNaEgc<);&_E#_|y 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 + + + + Debug + Win32 + + + Release + Win32 + + + + {10159605-BFF5-496F-8C23-0A1FB9850E55} + Win32Proj + Modloader + + + + DynamicLibrary + true + Unicode + + + DynamicLibrary + false + true + Unicode + + + + + + + + + + + + + false + include;$(IncludePath) + + + false + + + + + + Level3 + Disabled + WIN32;_DEBUG;_WINDOWS;_USRDLL;MODLOADER_EXPORTS;%(PreprocessorDefinitions) + + + Windows + true + + + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_WINDOWS;_USRDLL;MODLOADER_EXPORTS;%(PreprocessorDefinitions) + + + Windows + true + true + true + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ModLoader/Modloader/Modloader.vcxproj.filters b/ModLoader/Modloader/Modloader.vcxproj.filters new file mode 100644 index 0000000..495211e --- /dev/null +++ b/ModLoader/Modloader/Modloader.vcxproj.filters @@ -0,0 +1,39 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + Source Files + + + Source Files + + + + + Header Files + + + Header Files + + + Header Files + + + \ No newline at end of file diff --git a/ModLoader/Modloader/Modloader.vcxproj.user b/ModLoader/Modloader/Modloader.vcxproj.user new file mode 100644 index 0000000..ace9a86 --- /dev/null +++ b/ModLoader/Modloader/Modloader.vcxproj.user @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/ModLoader/include/modLoader.h b/ModLoader/Modloader/include/modLoader.h similarity index 100% rename from ModLoader/include/modLoader.h rename to ModLoader/Modloader/include/modLoader.h diff --git a/ModLoader/Modloader/include/stdafx.h b/ModLoader/Modloader/include/stdafx.h new file mode 100644 index 0000000..a4e3371 --- /dev/null +++ b/ModLoader/Modloader/include/stdafx.h @@ -0,0 +1,8 @@ +// +#include +#include +#include + +typedef void (*ServerProcessPointer)(unsigned int); + +void serverProcessReplacement(unsigned int timeDelta); \ No newline at end of file diff --git a/ModLoader/include/t2api.h b/ModLoader/Modloader/include/t2api.h old mode 100755 new mode 100644 similarity index 96% rename from ModLoader/include/t2api.h rename to ModLoader/Modloader/include/t2api.h index f0aefc3..930dd4e --- a/ModLoader/include/t2api.h +++ b/ModLoader/Modloader/include/t2api.h @@ -1,111 +1,111 @@ -#pragma once - -#include - -void initT2Api(); - - -//api stuff - -typedef unsigned int U32; -typedef int S32; -typedef float F32; - -typedef unsigned int dsize_t; - -//for addvariable -#define TypeS32 1 -#define TypeBool 3 -#define TypeF32 5 - - -//dshit -inline dsize_t dStrlen(const char *str) -{ - return (dsize_t)strlen(str); -} - -class Namespace { - const char* mName; -}; - - - -class SimObject{ - SimObject* group; - const char* objectName; //04h: objectName - SimObject* nextNameObject; //8 - SimObject* nextManagerNameObject; //c - SimObject* nextIdObject; //10h: nextIdObject - U32 stuff; //14 - U32 mFlags; //18h - U32 mNotifyList; //actually a pointer - U32 mId; //20h: mId - //more stuff -}; - -class SimIdDictionary -{ - enum - { - DefaultTableSize = 4096, - TableBitMask = 4095 - }; - SimObject *table[DefaultTableSize]; -}; -extern SimIdDictionary* gIdDictionary; - -class Point3F -{ - public: - F32 x; - F32 y; - F32 z; -}; - - -//GuiTSCtrl -class GuiTSCtrl {}; -class HoverVehicle {}; -void GuiTSCtrl_project(GuiTSCtrl *obj, const Point3F &pt, Point3F *dest); //fake - - -namespace Sim { - extern SimObject* (*findObject)(U32 id); -} - - -//console - -typedef const char * (*StringCallback)(SimObject *obj, S32 argc, const char *argv[]); -typedef S32 (*IntCallback)(SimObject *obj, S32 argc, const char *argv[]); -typedef F32 (*FloatCallback)(SimObject *obj, S32 argc, const char *argv[]); -typedef void (*VoidCallback)(SimObject *obj, S32 argc, const char *argv[]); -typedef bool (*BoolCallback)(SimObject *obj, S32 argc, const char *argv[]); - - -extern void (*someTest)(void); -//functions -namespace Con{ - -extern char * (*getReturnBuffer)(U32 bufferSize); - -extern void (*addMethodB)(const char *nsName, const char *name, BoolCallback cb, const char *usage, S32 minArgs, S32 maxArgs); -extern void (*addMethodS)(const char *nsName, const char *name, StringCallback cb, const char *usage, S32 minArgs, S32 maxArgs); - -extern bool (*addVariable)(const char *name, S32 t, void *dp); - -extern void (*printf)(const char* fmt,...); -extern void (*errorf)(U32 type, const char* fmt,...); - -extern const char * (*getVariable)(const char *name); -extern const char * (*execute)(S32 argc, const char *argv[]); -extern const char * (*executef)(S32 argc, ...); -extern const char * (*executem)(SimObject *object, S32 argc, const char *argv[]); -extern const char * (*evaluate)(const char* string, bool echo, const char *fileName, bool cf); -} - -//d-util -extern int (*dSscanf)(const char *buffer, const char *format, ...); -extern int (*dSprintf)(char *buffer, dsize_t bufferSize, const char *format, ...); +#pragma once + +#include + +void initT2Api(); + + +//api stuff + +typedef unsigned int U32; +typedef int S32; +typedef float F32; + +typedef unsigned int dsize_t; + +//for addvariable +#define TypeS32 1 +#define TypeBool 3 +#define TypeF32 5 + + +//dshit +inline dsize_t dStrlen(const char *str) +{ + return (dsize_t)strlen(str); +} + +class Namespace { + const char* mName; +}; + + + +class SimObject{ + SimObject* group; + const char* objectName; //04h: objectName + SimObject* nextNameObject; //8 + SimObject* nextManagerNameObject; //c + SimObject* nextIdObject; //10h: nextIdObject + U32 stuff; //14 + U32 mFlags; //18h + U32 mNotifyList; //actually a pointer + U32 mId; //20h: mId + //more stuff +}; + +class SimIdDictionary +{ + enum + { + DefaultTableSize = 4096, + TableBitMask = 4095 + }; + SimObject *table[DefaultTableSize]; +}; +extern SimIdDictionary* gIdDictionary; + +class Point3F +{ + public: + F32 x; + F32 y; + F32 z; +}; + + +//GuiTSCtrl +class GuiTSCtrl {}; +class HoverVehicle {}; +void GuiTSCtrl_project(GuiTSCtrl *obj, const Point3F &pt, Point3F *dest); //fake + + +namespace Sim { + extern SimObject* (*findObject)(U32 id); +} + + +//console + +typedef const char * (*StringCallback)(SimObject *obj, S32 argc, const char *argv[]); +typedef S32 (*IntCallback)(SimObject *obj, S32 argc, const char *argv[]); +typedef F32 (*FloatCallback)(SimObject *obj, S32 argc, const char *argv[]); +typedef void (*VoidCallback)(SimObject *obj, S32 argc, const char *argv[]); +typedef bool (*BoolCallback)(SimObject *obj, S32 argc, const char *argv[]); + + +extern void (*someTest)(void); +//functions +namespace Con{ + +extern char * (*getReturnBuffer)(U32 bufferSize); + +extern void (*addMethodB)(const char *nsName, const char *name, BoolCallback cb, const char *usage, S32 minArgs, S32 maxArgs); +extern void (*addMethodS)(const char *nsName, const char *name, StringCallback cb, const char *usage, S32 minArgs, S32 maxArgs); + +extern bool (*addVariable)(const char *name, S32 t, void *dp); + +extern void (*printf)(const char* fmt,...); +extern void (*errorf)(U32 type, const char* fmt,...); + +extern const char * (*getVariable)(const char *name); +extern const char * (*execute)(S32 argc, const char *argv[]); +extern const char * (*executef)(S32 argc, ...); +extern const char * (*executem)(SimObject *object, S32 argc, const char *argv[]); +extern const char * (*evaluate)(const char* string, bool echo, const char *fileName, bool cf); +} + +//d-util +extern int (*dSscanf)(const char *buffer, const char *format, ...); +extern int (*dSprintf)(char *buffer, dsize_t bufferSize, const char *format, ...); extern bool (*dAtob)(const char *str); \ No newline at end of file diff --git a/ModLoader/source/modLoader.cpp b/ModLoader/Modloader/source/modLoader.cpp similarity index 56% rename from ModLoader/source/modLoader.cpp rename to ModLoader/Modloader/source/modLoader.cpp index 3e00477..16bf3bb 100644 --- a/ModLoader/source/modLoader.cpp +++ b/ModLoader/Modloader/source/modLoader.cpp @@ -5,6 +5,27 @@ #include "stdafx.h" #include +static std::tr1::unordered_set sServerProcessResponders; + +void serverProcessReplacement(unsigned int timeDelta) +{ + unsigned int servertickaddr=0x602350; + unsigned int serverthisptr=0x9E5EC0; + + for (auto it = sServerProcessResponders.begin(); it != sServerProcessResponders.end(); it++) + (*it)(timeDelta); + + __asm + { + mov ecx,serverthisptr + push timeDelta + call servertickaddr + } + + return; + +} + // Mod Loader Implementation bool conLoadMod(SimObject *obj,S32 argc, const char* argv[]) { @@ -35,5 +56,15 @@ bool conLoadMod(SimObject *obj,S32 argc, const char* argv[]) lpInitMod(); Con::errorf(0, "loadMod(): Loaded and executed entry point code for mod DLL '%s'", raw.c_str()); + + // Check if there's a server process responder in this DLL + ServerProcessPointer serverProcess = (ServerProcessPointer)GetProcAddress(hDLL, "ServerProcess"); // Attempt to load our entry point + + if (serverProcess != NULL) + { + sServerProcessResponders.insert(sServerProcessResponders.end(), serverProcess); + Con::errorf(0, "loadMod(): Added server process responder for mod"); + } + return true; } \ No newline at end of file diff --git a/ModLoader/source/t2api.cpp b/ModLoader/Modloader/source/t2api.cpp old mode 100755 new mode 100644 similarity index 96% rename from ModLoader/source/t2api.cpp rename to ModLoader/Modloader/source/t2api.cpp index 137e2dc..d62569a --- a/ModLoader/source/t2api.cpp +++ b/ModLoader/Modloader/source/t2api.cpp @@ -1,89 +1,89 @@ -#include - -SimIdDictionary* gIdDictionary = reinterpret_cast(0x009E9194); - -//439550 -namespace Sim { - SimObject* (*findObject)(U32 id) = - (SimObject* (_cdecl *)(U32 id) ) - 0x439550; -} - -//hackey way to do member functions, .... -void GuiTSCtrl_project(GuiTSCtrl *obj, const Point3F &pt, Point3F *dest) { - typedef void (__cdecl *projFunc)(const Point3F &pt, Point3F *dest); - static projFunc p = (projFunc)0x4d0b40; - - __asm { - push dest; - push pt; - mov ecx,obj; - lea eax, p; - mov eax, [eax]; - call eax; - } -} - -void (*someTest)(void) = - (void (__cdecl *)(void)) - 0x4FD9B3; - -namespace Con { - -char* (*getReturnBuffer)(U32 bufferSize) = - (char *(__cdecl *)(U32)) - 0x42caa0; - -void (*addMethodB)(const char *nsName, const char *name, BoolCallback cb, const char *usage, S32 minArgs, S32 maxArgs) = - (void (__cdecl *)(const char *, const char *,BoolCallback,const char *,S32,S32)) - 0x426510; - -void (*addMethodS)(const char *, const char *,StringCallback, const char *, S32, S32) = - (void (__cdecl *)(const char *,const char *,StringCallback,const char *,S32,S32)) - 0x426410; - -bool (*addVariable)(const char *name, S32 t, void *dp) = - (bool (__cdecl *)(const char *name, S32 t, void *dp)) - 0x4263B0; - -const char * (*execute)(S32 argc, const char *argv[]) = - (const char * (__cdecl *)(S32 argc, const char *argv[])) - 0x4267A0; - -const char * (*executef)(S32 argc, ...) = - (const char * (__cdecl *)(S32 argc, ...)) - 0x4269E0; - -const char * (*evaluate)(const char* string, bool echo, const char *fileName, bool cf) = - (const char * (__cdecl *)(const char* string, bool echo, const char *fileName, bool cf)) - 0x426690; - -const char * (*executem)(SimObject *object, S32 argc, const char *argv[]) = - (const char * (__cdecl *)(SimObject *object, S32 argc, const char *argv[])) - 0x426800; - -const char * (*getVariable)(const char *name) = - (const char * (__cdecl *)(const char *name)) - 0x4261F0; - -void (*printf)(const char* fmt,...) = - (void (__cdecl *)(const char* fmt,...)) - 0x425F30; - -void (*errorf)(U32 type, const char* fmt,...)= - (void (__cdecl *)(U32, const char*,...)) - 0x425FB0; - -} - -int (*dSscanf)(const char *buffer, const char *format, ...) = - (int (__cdecl *)(const char *,const char *,...)) - 0x55b640; - -int (*dSprintf)(char *buffer, dsize_t bufferSize, const char *format, ...) = - (int (__cdecl *)(char *,dsize_t,const char *,...)) - 0x55b5e0; - -bool (*dAtob)(const char *str) = - (bool (__cdecl *)(const char *str)) - 0x55B490; +#include + +SimIdDictionary* gIdDictionary = reinterpret_cast(0x009E9194); + +//439550 +namespace Sim { + SimObject* (*findObject)(U32 id) = + (SimObject* (_cdecl *)(U32 id) ) + 0x439550; +} + +//hackey way to do member functions, .... +void GuiTSCtrl_project(GuiTSCtrl *obj, const Point3F &pt, Point3F *dest) { + typedef void (__cdecl *projFunc)(const Point3F &pt, Point3F *dest); + static projFunc p = (projFunc)0x4d0b40; + + __asm { + push dest; + push pt; + mov ecx,obj; + lea eax, p; + mov eax, [eax]; + call eax; + } +} + +void (*someTest)(void) = + (void (__cdecl *)(void)) + 0x4FD9B3; + +namespace Con { + +char* (*getReturnBuffer)(U32 bufferSize) = + (char *(__cdecl *)(U32)) + 0x42caa0; + +void (*addMethodB)(const char *nsName, const char *name, BoolCallback cb, const char *usage, S32 minArgs, S32 maxArgs) = + (void (__cdecl *)(const char *, const char *,BoolCallback,const char *,S32,S32)) + 0x426510; + +void (*addMethodS)(const char *, const char *,StringCallback, const char *, S32, S32) = + (void (__cdecl *)(const char *,const char *,StringCallback,const char *,S32,S32)) + 0x426410; + +bool (*addVariable)(const char *name, S32 t, void *dp) = + (bool (__cdecl *)(const char *name, S32 t, void *dp)) + 0x4263B0; + +const char * (*execute)(S32 argc, const char *argv[]) = + (const char * (__cdecl *)(S32 argc, const char *argv[])) + 0x4267A0; + +const char * (*executef)(S32 argc, ...) = + (const char * (__cdecl *)(S32 argc, ...)) + 0x4269E0; + +const char * (*evaluate)(const char* string, bool echo, const char *fileName, bool cf) = + (const char * (__cdecl *)(const char* string, bool echo, const char *fileName, bool cf)) + 0x426690; + +const char * (*executem)(SimObject *object, S32 argc, const char *argv[]) = + (const char * (__cdecl *)(SimObject *object, S32 argc, const char *argv[])) + 0x426800; + +const char * (*getVariable)(const char *name) = + (const char * (__cdecl *)(const char *name)) + 0x4261F0; + +void (*printf)(const char* fmt,...) = + (void (__cdecl *)(const char* fmt,...)) + 0x425F30; + +void (*errorf)(U32 type, const char* fmt,...)= + (void (__cdecl *)(U32, const char*,...)) + 0x425FB0; + +} + +int (*dSscanf)(const char *buffer, const char *format, ...) = + (int (__cdecl *)(const char *,const char *,...)) + 0x55b640; + +int (*dSprintf)(char *buffer, dsize_t bufferSize, const char *format, ...) = + (int (__cdecl *)(char *,dsize_t,const char *,...)) + 0x55b5e0; + +bool (*dAtob)(const char *str) = + (bool (__cdecl *)(const char *str)) + 0x55B490; diff --git a/ModLoader/source/t2dll.cpp b/ModLoader/Modloader/source/t2dll.cpp old mode 100755 new mode 100644 similarity index 64% rename from ModLoader/source/t2dll.cpp rename to ModLoader/Modloader/source/t2dll.cpp index a0ae70a..abe7fcc --- a/ModLoader/source/t2dll.cpp +++ b/ModLoader/Modloader/source/t2dll.cpp @@ -1,49 +1,71 @@ -/* - * t2dll.cpp - * Original code by Linker - * Modified by Robert MacGregor -*/ - -#include -#include - -#include -#include - -BOOL APIENTRY DllMain( HMODULE hModule, - DWORD ul_reason_for_call, - LPVOID lpReserved - ) -{ - return true; -} - -__declspec(dllexport) void initT2Dll(void) -{ - Con::addVariable("$cpuspeed",TypeS32,reinterpret_cast(0x8477F8)); //1 - S32, this is so i can set my cpu speed to 31337 or osmething =P - Con::addVariable("$GameBase::showBoundingBox",TypeBool,reinterpret_cast(0x9ECF24)); - - // Mod Loader Function - Con::addMethodB(NULL, "loadMod", &conLoadMod, "Loads a C++ modification.",2,2); - - // Load the original TribesNext DLL if available - typedef void (*LPINITT2DLL)(void); - HINSTANCE hDLL = NULL; - LPINITT2DLL lpinitT2DLL = NULL; - hDLL = LoadLibrary(L"tribesnext.dll"); // AfxLoadLibrary is probably better. - - if (hDLL == NULL) - return; // The DLL doesn't exist - else - lpinitT2DLL = (LPINITT2DLL)GetProcAddress(hDLL, "_Z9initT2Dllv"); // Attempt to load our entry point - - if (lpinitT2DLL == NULL) - return; // Unable to load entry point - else - lpinitT2DLL(); // The function was loaded, call TribesNext and move on to postTN Startup -} - -#ifdef _MANAGED -#pragma managed(pop) -#endif - +/* + * t2dll.cpp + * Original code by Linker + * Modified by Robert MacGregor +*/ + +#include + +#include +#include + +#include + +#define endian(hex) (((hex & 0x000000FF) << 24)+((hex & 0x0000FF00) << 8)+((hex & 0x00FF0000)>>8)+((hex & 0xFF000000) >> 24)) + +BOOL APIENTRY DllMain( HMODULE hModule, + DWORD ul_reason_for_call, + LPVOID lpReserved + ) +{ + return true; +} + +const char* congetServPAddr(SimObject *obj, S32 argc, const char *argv[]) +{ + char test[256] = ""; + char test2[256]=""; + int spr=(signed int)*serverProcessReplacement; + sprintf(test2,"B8%08XFFD089EC5DC3",endian(spr)); + /*test2[0]=test[6]; + test2[1]=test[7]; + test2[2]=test[4]; + test2[3]=test[5]; + test2[4]=test[2]; + test2[5]=test[3]; + test2[6]=test[0]; + test2[7]=test[1]; + test2[8]=0;*/ + return test2; +} + +__declspec(dllexport) void initT2Dll(void) +{ + Con::addVariable("$cpuspeed",TypeS32,reinterpret_cast(0x8477F8)); //1 - S32, this is so i can set my cpu speed to 31337 or osmething =P + Con::addVariable("$GameBase::showBoundingBox",TypeBool,reinterpret_cast(0x9ECF24)); + + // Mod Loader Function + Con::addMethodB(NULL, "loadMod", &conLoadMod, "Loads a C++ modification.",2,2); + Con::addMethodS(NULL, "getServPAddr",&congetServPAddr,"Gets the memPatch data for ServerProcess",1,1); + + // Load the original TribesNext DLL if available + typedef void (*LPINITT2DLL)(void); + HINSTANCE hDLL = NULL; + LPINITT2DLL lpinitT2DLL = NULL; + hDLL = LoadLibrary(L"tribesnext.dll"); // AfxLoadLibrary is probably better. + + if (hDLL == NULL) + return; // The DLL doesn't exist + else + lpinitT2DLL = (LPINITT2DLL)GetProcAddress(hDLL, "_Z9initT2Dllv"); // Attempt to load our entry point + + if (lpinitT2DLL == NULL) + return; // Unable to load entry point + else + lpinitT2DLL(); // The function was loaded, call TribesNext and move on to postTN Startup +} + +#ifdef _MANAGED +#pragma managed(pop) +#endif +