Restructured project structure to use a singular SLN; made the T2API common to all projects; adjusted watchdog timer to 8 seconds

This commit is contained in:
Robert MacGregor 2015-06-27 13:36:30 -04:00
parent e1c5d1dead
commit 527474ff24
79 changed files with 469 additions and 626 deletions

View file

@ -6,7 +6,7 @@
#include <stdafx.h>
#include <t2api.h>
#include <LinkerAPI.h>
#include <modLoader.h>
#include <unordered_set>
@ -21,7 +21,7 @@ BOOL APIENTRY DllMain( HMODULE hModule,
return true;
}
const char* congetServPAddr(SimObject *obj, S32 argc, const char *argv[])
const char* congetServPAddr(Linker::SimObject *obj, S32 argc, const char *argv[])
{
char test[256] = "";
char test2[256]="";
@ -38,33 +38,63 @@ const char* congetServPAddr(SimObject *obj, S32 argc, const char *argv[])
test2[8]=0;*/
return test2;
}
__declspec(dllexport) void initT2Dll(void)
{
Con::addVariable("$cpuspeed",TypeS32,reinterpret_cast<void*>(0x8477F8)); //1 - S32, this is so i can set my cpu speed to 31337 or osmething =P
Con::addVariable("$GameBase::showBoundingBox",TypeBool,reinterpret_cast<void*>(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
}
class CImmCompoundEffect
{
public:
_declspec(dllexport) int Start(unsigned long x, unsigned long y) { return 8; }
_declspec(dllexport) int Stop() { return 1; }
};
class CImmDevice
{
public:
_declspec(dllexport) static CImmDevice * CreateDevice(HINSTANCE__ *, HWND__ *)
{
Con::addVariable("$cpuspeed",TypeS32,reinterpret_cast<void*>(0x8477F8)); //1 - S32, this is so i can set my cpu speed to 31337 or osmething =P
Con::addVariable("$GameBase::showBoundingBox",TypeBool,reinterpret_cast<void*>(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 0; // The DLL doesn't exist
else
lpinitT2DLL = (LPINITT2DLL)GetProcAddress(hDLL, "_Z9initT2Dllv"); // Attempt to load our entry point
if (lpinitT2DLL == NULL)
return 0; // Unable to load entry point
else
lpinitT2DLL(); // The function was loaded, call TribesNext and move on to postTN Startup
return 0;
}
_declspec(dllexport) int UsesWin32MouseServices(int) { return 4; }
};
class CImmProject
{
public:
_declspec(dllexport) CImmProject() {}
_declspec(dllexport) ~CImmProject() {}
_declspec(dllexport) CImmCompoundEffect *GetCreatedEffect(int) { return 0; }
_declspec(dllexport) CImmCompoundEffect *GetCreatedEffect(const char *) { return 0; }
_declspec(dllexport) CImmCompoundEffect *CreateEffect(char const *, CImmDevice *, unsigned long) { return 0; }
_declspec(dllexport) int Start(char const *, unsigned long, unsigned long, class CImmDevice *) { return 1; }
_declspec(dllexport) int Stop(const char *) { return 1; }
_declspec(dllexport) int LoadProjectFromMemory(void *, CImmDevice *) { return 1; }
};
#ifdef _MANAGED
#pragma managed(pop)
#endif