mirror of
https://github.com/Ragora/T2-CPP.git
synced 2026-02-18 22:23:38 +00:00
Initial commit.
This commit is contained in:
parent
9538049d44
commit
44e5f33ee7
99 changed files with 2363 additions and 0 deletions
22
Mod Sources/TSExtension/BaseMod/BaseMod.cpp
Normal file
22
Mod Sources/TSExtension/BaseMod/BaseMod.cpp
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
// BaseMod.cpp : Defines the exported functions for the DLL application.
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "BaseMod.h"
|
||||
|
||||
#include "DXAPI.h"
|
||||
#include "LinkerAPI.h"
|
||||
|
||||
#include "DXConCmds.h"
|
||||
|
||||
extern "C"
|
||||
{
|
||||
BASEMOD_API void ModInitialize(void)
|
||||
{
|
||||
Con::addMethodB("Player", "isjumping", &conPlayerGetJumpingState,"Returns whether or not the player is jumping", 2, 2);
|
||||
Con::addMethodB("Player", "isjetting", &conPlayerGetJettingState,"Returns whether or not the player is jetting", 2, 2);
|
||||
|
||||
Con::addMethodB("GrenadeProjectile", "explode", &conProjectileExplode,"Explodes the given projectile", 5, 5);
|
||||
Con::addMethodB("Projectile", "explode", &conProjectileExplode,"Explodes the given projectile", 5, 5);
|
||||
}
|
||||
}
|
||||
8
Mod Sources/TSExtension/BaseMod/BaseMod.h
Normal file
8
Mod Sources/TSExtension/BaseMod/BaseMod.h
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
// The following ifdef block is the standard way of creating macros which make exporting
|
||||
// from a DLL simpler. All files within this DLL are compiled with the BASEMOD_EXPORTS
|
||||
// symbol defined on the command line. This symbol should not be defined on any project
|
||||
// that uses this DLL. This way any other project whose source files include this file see
|
||||
// BASEMOD_API functions as being imported from a DLL, whereas this DLL sees symbols
|
||||
// defined with this macro as being exported.
|
||||
|
||||
#define BASEMOD_API __declspec( dllexport )
|
||||
106
Mod Sources/TSExtension/BaseMod/BaseMod.vcxproj
Normal file
106
Mod Sources/TSExtension/BaseMod/BaseMod.vcxproj
Normal file
|
|
@ -0,0 +1,106 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{2A498B2D-84B2-4BBF-9532-EA17E5BA51BB}</ProjectGuid>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<RootNamespace>BaseMod</RootNamespace>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;BASEMOD_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;BASEMOD_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<None Include="ReadMe.txt" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="BaseMod.h" />
|
||||
<ClInclude Include="DXAPI.h" />
|
||||
<ClInclude Include="DXConCmds.h" />
|
||||
<ClInclude Include="LinkerAPI.h" />
|
||||
<ClInclude Include="stdafx.h" />
|
||||
<ClInclude Include="targetver.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="BaseMod.cpp" />
|
||||
<ClCompile Include="dllmain.cpp">
|
||||
<CompileAsManaged Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</CompileAsManaged>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
</PrecompiledHeader>
|
||||
<CompileAsManaged Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</CompileAsManaged>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DXAPI.cpp" />
|
||||
<ClCompile Include="DXConCmds.cpp" />
|
||||
<ClCompile Include="LinkerAPI.cpp" />
|
||||
<ClCompile Include="stdafx.cpp">
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
60
Mod Sources/TSExtension/BaseMod/BaseMod.vcxproj.filters
Normal file
60
Mod Sources/TSExtension/BaseMod/BaseMod.vcxproj.filters
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Resource Files">
|
||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="ReadMe.txt" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="stdafx.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="targetver.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="BaseMod.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="DXConCmds.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="LinkerAPI.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="DXAPI.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="stdafx.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="BaseMod.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="dllmain.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DXAPI.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="DXConCmds.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="LinkerAPI.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
3
Mod Sources/TSExtension/BaseMod/BaseMod.vcxproj.user
Normal file
3
Mod Sources/TSExtension/BaseMod/BaseMod.vcxproj.user
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
</Project>
|
||||
90
Mod Sources/TSExtension/BaseMod/DXAPI.cpp
Normal file
90
Mod Sources/TSExtension/BaseMod/DXAPI.cpp
Normal file
|
|
@ -0,0 +1,90 @@
|
|||
/**
|
||||
* @file DXAPI.cpp
|
||||
* @brief The DXAPI is an API that allows you to manipulate various game objects
|
||||
* in Tribes 2 from raw C++ code. It dynamically resolves the addresses of member
|
||||
* variables as you can't really trust the compiler to produce binary compatible classes,
|
||||
* especially with all the inheritance involved in the original Tribes 2 codebase.
|
||||
*
|
||||
* This code wouldn't be possible without Linker's original gift on the-construct.net forums,
|
||||
* whose files are appropriately labelled in this codebase. These files have been edited where
|
||||
* appropriate in order to make that code play better with the DXAPI.
|
||||
*
|
||||
* @copyright (c) 2014 Robert MacGregor
|
||||
*/
|
||||
|
||||
#include "DXAPI.h"
|
||||
#include "LinkerAPI.h"
|
||||
|
||||
namespace DX
|
||||
{
|
||||
Player GetPlayerPointer(UnresolvedObject obj)
|
||||
{
|
||||
// Probably some way to do all this via assembly but screw me if I know
|
||||
unsigned int base_tribes_pointer = (unsigned int)obj;
|
||||
|
||||
Player result =
|
||||
{
|
||||
0x00, // Object Name
|
||||
*(unsigned int*)(base_tribes_pointer + 32), // Object ID
|
||||
*(float*)(base_tribes_pointer + 168), // Position X
|
||||
*(float*)(base_tribes_pointer + 184), // Position Y
|
||||
*(float*)(base_tribes_pointer + 200), // Position Z
|
||||
*(bool*)(base_tribes_pointer + 735), // Jetting State
|
||||
*(bool*)(base_tribes_pointer + 734) // Jumping State
|
||||
};
|
||||
return result;
|
||||
}
|
||||
|
||||
StaticShape GetStaticShapePointer(UnresolvedObject obj)
|
||||
{
|
||||
unsigned int base_tribes_pointer = (unsigned int)obj;
|
||||
|
||||
StaticShape result =
|
||||
{
|
||||
0x00, // Object Name
|
||||
*(float*)(base_tribes_pointer + 200), // Position X
|
||||
*(float*)(base_tribes_pointer + 200), // Position Y
|
||||
*(float*)(base_tribes_pointer + 200) // Position Z
|
||||
};
|
||||
return result;
|
||||
}
|
||||
|
||||
SimGroup GetSimGroupPointer(UnresolvedObject obj)
|
||||
{
|
||||
unsigned int base_tribes_pointer = (unsigned int)obj;
|
||||
|
||||
SimGroup result =
|
||||
{
|
||||
|
||||
};
|
||||
return result;
|
||||
}
|
||||
|
||||
FlyingVehicle GetFlyingVehiclePointer(UnresolvedObject obj)
|
||||
{
|
||||
unsigned int base_tribes_pointer = (unsigned int)obj;
|
||||
|
||||
FlyingVehicle result =
|
||||
{
|
||||
*(float*)(base_tribes_pointer + 2200), // Strafing Status
|
||||
};
|
||||
return result;
|
||||
}
|
||||
|
||||
void Projectile_explode(Projectile *obj, const Point3F &position, const Point3F &normal, const unsigned int collideType)
|
||||
{
|
||||
typedef void (__cdecl *explodeFunc)(const Point3F &position, const Point3F &normal, const unsigned int collideType);
|
||||
static explodeFunc function_call = (explodeFunc)0x62DC30;
|
||||
|
||||
__asm {
|
||||
push collideType;
|
||||
push normal;
|
||||
push position;
|
||||
mov ecx,obj;
|
||||
lea eax, function_call;
|
||||
mov eax, [eax];
|
||||
call eax;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
107
Mod Sources/TSExtension/BaseMod/DXAPI.h
Normal file
107
Mod Sources/TSExtension/BaseMod/DXAPI.h
Normal file
|
|
@ -0,0 +1,107 @@
|
|||
/**
|
||||
* @file DXAPI.h
|
||||
* @brief The DXAPI is an API that allows you to manipulate various game objects
|
||||
* in Tribes 2 from raw C++ code. It dynamically resolves the addresses of member
|
||||
* variables as you can't really trust the compiler to produce binary compatible classes,
|
||||
* especially with all the inheritance involved in the original Tribes 2 codebase.
|
||||
*
|
||||
* This code wouldn't be possible without Linker's original gift on the-construct.net forums,
|
||||
* whose files are appropriately labelled in this codebase. These files have been edited where
|
||||
* appropriate in order to make that code play better with the DXAPI.
|
||||
*
|
||||
* @copyright (c) 2014 Robert MacGregor
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "LinkerAPI.h"
|
||||
|
||||
namespace DX
|
||||
{
|
||||
//! A typedef referring to some type of unresolved object in the game.
|
||||
typedef void* UnresolvedObject;
|
||||
|
||||
class Projectile {};
|
||||
|
||||
//! Structure representing a player object in the game.
|
||||
typedef struct
|
||||
{
|
||||
//! Object Name
|
||||
const char *name;
|
||||
//! Object ID
|
||||
const unsigned int &id;
|
||||
|
||||
//! X Coordinate of the position.
|
||||
float &position_x;
|
||||
//! Y Coordinate of the position.
|
||||
float &position_y;
|
||||
//! Z Coordinate of the position.
|
||||
float &position_z;
|
||||
|
||||
//! Player Object Jetting State (readonly, writing it doesn't do anything)
|
||||
const bool &is_jetting;
|
||||
//! Player Object Jumping State (readonly, writing it doesn't do anything)
|
||||
const bool &is_jumping;
|
||||
} Player;
|
||||
|
||||
/**
|
||||
* @brief Returns a usable Player structure from a void
|
||||
* pointer.
|
||||
* @param obj A void pointer to attempt to resolve from.
|
||||
* @return A usable Player structure to manipulate.
|
||||
*/
|
||||
Player GetPlayerPointer(UnresolvedObject obj);
|
||||
|
||||
//! Structure representing a static shape in the game.
|
||||
typedef struct
|
||||
{
|
||||
//! Object Name
|
||||
const char *name;
|
||||
//! X Coordinate of the position.
|
||||
float &position_x;
|
||||
//! Y Coordinate of the position.
|
||||
float &position_y;
|
||||
//! Z Coordinate of the position.
|
||||
float &position_z;
|
||||
} StaticShape;
|
||||
|
||||
/**
|
||||
* @brief Returns a usable StaticShape structure from a void
|
||||
* pointer.
|
||||
* @param obj A void pointer to attempt to resolve from.
|
||||
* @return A usable StaticShape structure to manipulate.
|
||||
*/
|
||||
StaticShape GetStaticShapePointer(UnresolvedObject obj);
|
||||
|
||||
//! Structure representing a SimGroup in the game.
|
||||
typedef struct
|
||||
{
|
||||
|
||||
} SimGroup;
|
||||
|
||||
/**
|
||||
* @brief Returns a usable SimGroup structure from a void
|
||||
* pointer.
|
||||
* @param obj A void pointer to attempt to resolve from.
|
||||
* @return A usable SimGroup structure to manipulate.
|
||||
*/
|
||||
SimGroup GetSimGroupPointer(UnresolvedObject obj);
|
||||
|
||||
|
||||
//! Structure representing a FlyingVehicle in the game.
|
||||
typedef struct
|
||||
{
|
||||
//! Strafing State. 0=Not Strafing. -1=Strafing Left. 1=Strafing Right (readonly, writing it doesn't do anything)
|
||||
const float &strafing_state;
|
||||
} FlyingVehicle;
|
||||
|
||||
/**
|
||||
* @brief Returns a usable FlyingVehicle structure from a void
|
||||
* pointer.
|
||||
* @param obj A void pointer to attempt to resolve from.
|
||||
* @return A usable FlyingVehicle structure to manipulate.
|
||||
*/
|
||||
FlyingVehicle GetFlyingVehiclePointer(UnresolvedObject obj);
|
||||
|
||||
void Projectile_explode(Projectile *obj, const Point3F &position, const Point3F &normal, const unsigned int collideType);
|
||||
}
|
||||
58
Mod Sources/TSExtension/BaseMod/DXConCmds.cpp
Normal file
58
Mod Sources/TSExtension/BaseMod/DXConCmds.cpp
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
/**
|
||||
*
|
||||
*/
|
||||
|
||||
#include "LinkerAPI.h"
|
||||
#include "DXAPI.h"
|
||||
|
||||
const char *conGetAddress(SimObject *obj, S32 argc, const char *argv[])
|
||||
{
|
||||
// Hmm...
|
||||
char result[256];
|
||||
sprintf(result, "%x", obj);
|
||||
return result;
|
||||
}
|
||||
|
||||
const char *conPlayerSetZ(SimObject *obj, S32 argc, const char *argv[])
|
||||
{
|
||||
DX::Player test = DX::GetPlayerPointer(obj);
|
||||
test.position_y = 100;
|
||||
test.position_z = 300;
|
||||
test.position_x = 500;
|
||||
|
||||
char result[256];
|
||||
sprintf(result, "LOL");
|
||||
return result;
|
||||
}
|
||||
|
||||
bool conPlayerGetJumpingState(SimObject *obj, S32 argc, const char* argv[])
|
||||
{
|
||||
DX::Player operand = DX::GetPlayerPointer(obj);
|
||||
|
||||
return operand.is_jumping;
|
||||
}
|
||||
|
||||
bool conPlayerGetJettingState(SimObject *obj, S32 argc, const char* argv[])
|
||||
{
|
||||
DX::Player operand = DX::GetPlayerPointer(obj);
|
||||
|
||||
return operand.is_jetting;
|
||||
}
|
||||
|
||||
bool conProjectileExplode(SimObject *obj, S32 argc, const char* argv[])
|
||||
{
|
||||
Point3F position;
|
||||
position.x = 0;
|
||||
position.y = 0;
|
||||
position.z = 0;
|
||||
|
||||
Point3F normal;
|
||||
normal.x = 0;
|
||||
normal.y = 0;
|
||||
normal.z = 0;
|
||||
|
||||
unsigned int collideType = atoi(argv[4]);
|
||||
DX::Projectile_explode((DX::Projectile*)obj, position, normal, collideType);
|
||||
|
||||
return true;
|
||||
}
|
||||
29
Mod Sources/TSExtension/BaseMod/DXConCmds.h
Normal file
29
Mod Sources/TSExtension/BaseMod/DXConCmds.h
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
/**
|
||||
* @brief The DXAPI is an API that allows you to manipulate various game objects
|
||||
* in Tribes 2 from raw C++ code. It dynamically resolves the addresses of member
|
||||
* variables as you can't really trust the compiler to produce binary compatible classes,
|
||||
* especially with all the inheritance involved in the original Tribes 2 codebase.
|
||||
*
|
||||
* This code wouldn't be possible without Linker's original gift on the-construct.net forums,
|
||||
* whose files are appropriately labeled in this codebase.
|
||||
*
|
||||
* @copyright (c) 2014 Robert MacGregor
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "LinkerAPI.h"
|
||||
|
||||
// Returns the address of an object in memory
|
||||
const char* conGetAddress(SimObject *obj, S32 argc, const char *argv[]);
|
||||
|
||||
// Player Commands -----------------------------------
|
||||
bool conPlayerGetJumpingState(SimObject *obj, S32 argc, const char* argv[]);
|
||||
bool conPlayerGetJettingState(SimObject *obj, S32 argc, const char* argv[]);
|
||||
|
||||
// Projectile explode
|
||||
bool conProjectileExplode(SimObject *obj, S32 argc, const char* argv[]);
|
||||
|
||||
// Tests Position Z
|
||||
const char *conPlayerSetZ(SimObject *obj, S32 argc, const char *argv[]);
|
||||
86
Mod Sources/TSExtension/BaseMod/LinkerAPI.cpp
Normal file
86
Mod Sources/TSExtension/BaseMod/LinkerAPI.cpp
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
#include "LinkerAPI.h"
|
||||
|
||||
SimIdDictionary* gIdDictionary = reinterpret_cast<SimIdDictionary*>(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;
|
||||
}
|
||||
}
|
||||
|
||||
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;
|
||||
119
Mod Sources/TSExtension/BaseMod/LinkerAPI.h
Normal file
119
Mod Sources/TSExtension/BaseMod/LinkerAPI.h
Normal file
|
|
@ -0,0 +1,119 @@
|
|||
// Linker's Tribes 2 API
|
||||
|
||||
#pragma once
|
||||
|
||||
//api stuff
|
||||
|
||||
typedef unsigned int U32;
|
||||
typedef int S32;
|
||||
typedef float F32;
|
||||
|
||||
typedef unsigned int dsize_t;
|
||||
#include <string>
|
||||
|
||||
//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;
|
||||
};
|
||||
|
||||
struct 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:
|
||||
Point3F(F32 *x, F32 *y, F32 *z)
|
||||
{
|
||||
this->x = x;
|
||||
this->y = y;
|
||||
this->z = z;
|
||||
}
|
||||
|
||||
Point3F(void)
|
||||
{
|
||||
this->x = 0;
|
||||
this->y = 0;
|
||||
this->z = 0;
|
||||
}
|
||||
|
||||
F32 *x;
|
||||
F32 *y;
|
||||
F32 *z;
|
||||
};
|
||||
|
||||
|
||||
//GuiTSCtrl
|
||||
class GuiTSCtrl {};
|
||||
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[]);
|
||||
|
||||
|
||||
//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);
|
||||
40
Mod Sources/TSExtension/BaseMod/ReadMe.txt
Normal file
40
Mod Sources/TSExtension/BaseMod/ReadMe.txt
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
========================================================================
|
||||
DYNAMIC LINK LIBRARY : BaseMod Project Overview
|
||||
========================================================================
|
||||
|
||||
AppWizard has created this BaseMod DLL for you.
|
||||
|
||||
This file contains a summary of what you will find in each of the files that
|
||||
make up your BaseMod application.
|
||||
|
||||
|
||||
BaseMod.vcxproj
|
||||
This is the main project file for VC++ projects generated using an Application Wizard.
|
||||
It contains information about the version of Visual C++ that generated the file, and
|
||||
information about the platforms, configurations, and project features selected with the
|
||||
Application Wizard.
|
||||
|
||||
BaseMod.vcxproj.filters
|
||||
This is the filters file for VC++ projects generated using an Application Wizard.
|
||||
It contains information about the association between the files in your project
|
||||
and the filters. This association is used in the IDE to show grouping of files with
|
||||
similar extensions under a specific node (for e.g. ".cpp" files are associated with the
|
||||
"Source Files" filter).
|
||||
|
||||
BaseMod.cpp
|
||||
This is the main DLL source file.
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
Other standard files:
|
||||
|
||||
StdAfx.h, StdAfx.cpp
|
||||
These files are used to build a precompiled header (PCH) file
|
||||
named BaseMod.pch and a precompiled types file named StdAfx.obj.
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
Other notes:
|
||||
|
||||
AppWizard uses "TODO:" comments to indicate parts of the source code you
|
||||
should add to or customize.
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
C:\USERS\ROBERT MACGREGOR\DESKTOP\BASEMOD\BASEMOD\RELEASE\BASEMOD.DLL.INTERMEDIATE.MANIFEST
|
||||
C:\USERS\ROBERT MACGREGOR\DESKTOP\BASEMOD\BASEMOD\RELEASE\BASEMOD.OBJ
|
||||
C:\USERS\ROBERT MACGREGOR\DESKTOP\BASEMOD\BASEMOD\RELEASE\BASEMOD.PCH
|
||||
C:\USERS\ROBERT MACGREGOR\DESKTOP\BASEMOD\BASEMOD\RELEASE\DLLMAIN.OBJ
|
||||
C:\USERS\ROBERT MACGREGOR\DESKTOP\BASEMOD\BASEMOD\RELEASE\STDAFX.OBJ
|
||||
C:\USERS\ROBERT MACGREGOR\DESKTOP\BASEMOD\BASEMOD\RELEASE\VC100.PDB
|
||||
C:\USERS\ROBERT MACGREGOR\DESKTOP\BASEMOD\RELEASE\BASEMOD.DLL
|
||||
C:\Users\Robert MacGregor\Desktop\BaseMod\Release\BaseMod.exp
|
||||
C:\Users\Robert MacGregor\Desktop\BaseMod\Release\BaseMod.lib
|
||||
C:\USERS\ROBERT MACGREGOR\DESKTOP\BASEMOD\RELEASE\BASEMOD.PDB
|
||||
C:\USERS\ROBERT MACGREGOR\DESKTOP\TSEXTENSION\BASEMOD\RELEASE\BASEMOD.DLL.INTERMEDIATE.MANIFEST
|
||||
C:\USERS\ROBERT MACGREGOR\DESKTOP\TSEXTENSION\BASEMOD\RELEASE\BASEMOD.OBJ
|
||||
C:\USERS\ROBERT MACGREGOR\DESKTOP\TSEXTENSION\BASEMOD\RELEASE\BASEMOD.PCH
|
||||
C:\Users\Robert MacGregor\Desktop\TSExtension\BaseMod\Release\BaseMod.vcxprojResolveAssemblyReference.cache
|
||||
C:\Users\Robert MacGregor\Desktop\TSExtension\BaseMod\Release\BaseMod.write.1.tlog
|
||||
C:\Users\Robert MacGregor\Desktop\TSExtension\BaseMod\Release\cl.command.1.tlog
|
||||
C:\Users\Robert MacGregor\Desktop\TSExtension\BaseMod\Release\CL.read.1.tlog
|
||||
C:\Users\Robert MacGregor\Desktop\TSExtension\BaseMod\Release\CL.write.1.tlog
|
||||
C:\USERS\ROBERT MACGREGOR\DESKTOP\TSEXTENSION\BASEMOD\RELEASE\DLLMAIN.OBJ
|
||||
C:\Users\Robert MacGregor\Desktop\TSExtension\BaseMod\Release\link.command.1.tlog
|
||||
C:\Users\Robert MacGregor\Desktop\TSExtension\BaseMod\Release\link.read.1.tlog
|
||||
C:\Users\Robert MacGregor\Desktop\TSExtension\BaseMod\Release\link.write.1.tlog
|
||||
C:\Users\Robert MacGregor\Desktop\TSExtension\BaseMod\Release\mt.command.1.tlog
|
||||
C:\Users\Robert MacGregor\Desktop\TSExtension\BaseMod\Release\mt.read.1.tlog
|
||||
C:\Users\Robert MacGregor\Desktop\TSExtension\BaseMod\Release\mt.write.1.tlog
|
||||
C:\USERS\ROBERT MACGREGOR\DESKTOP\TSEXTENSION\BASEMOD\RELEASE\STDAFX.OBJ
|
||||
C:\USERS\ROBERT MACGREGOR\DESKTOP\TSEXTENSION\BASEMOD\RELEASE\VC100.PDB
|
||||
C:\USERS\ROBERT MACGREGOR\DESKTOP\TSEXTENSION\RELEASE\BASEMOD.DLL
|
||||
C:\Users\Robert MacGregor\Desktop\TSExtension\Release\BaseMod.exp
|
||||
C:\Users\Robert MacGregor\Desktop\TSExtension\Release\BaseMod.lib
|
||||
C:\USERS\ROBERT MACGREGOR\DESKTOP\TSEXTENSION\RELEASE\BASEMOD.PDB
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
|
||||
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
|
||||
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
|
||||
<security>
|
||||
<requestedPrivileges>
|
||||
<requestedExecutionLevel level='asInvoker' uiAccess='false' />
|
||||
</requestedPrivileges>
|
||||
</security>
|
||||
</trustInfo>
|
||||
</assembly>
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
#v4.0:v100
|
||||
Release|Win32|C:\Users\Robert MacGregor\Desktop\TSExtension\|
|
||||
38
Mod Sources/TSExtension/BaseMod/Release/BaseMod.log
Normal file
38
Mod Sources/TSExtension/BaseMod/Release/BaseMod.log
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
Build started 8/4/2014 9:12:36 PM.
|
||||
1>Project "C:\Users\Robert MacGregor\Desktop\TSExtension\BaseMod\BaseMod.vcxproj" on node 2 (build target(s)).
|
||||
1>InitializeBuildStatus:
|
||||
Touching "Release\BaseMod.unsuccessfulbuild".
|
||||
ClCompile:
|
||||
All outputs are up-to-date.
|
||||
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\CL.exe /c /Zi /nologo /W3 /WX- /O2 /Oi /Oy- /GL /D WIN32 /D NDEBUG /D _WINDOWS /D _USRDLL /D BASEMOD_EXPORTS /D _WINDLL /D _UNICODE /D UNICODE /Gm- /EHsc /MD /GS /Gy /fp:precise /Zc:wchar_t /Zc:forScope /Fo"Release\\" /Fd"Release\vc100.pdb" /Gd /TP /analyze- /errorReport:prompt BaseMod.cpp DXAPI.cpp DXConCmds.cpp
|
||||
BaseMod.cpp
|
||||
DXAPI.cpp
|
||||
DXConCmds.cpp
|
||||
1>DXConCmds.cpp(12): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
||||
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdio.h(371) : see declaration of 'sprintf'
|
||||
1>DXConCmds.cpp(13): warning C4172: returning address of local variable or temporary
|
||||
1>DXConCmds.cpp(24): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
||||
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdio.h(371) : see declaration of 'sprintf'
|
||||
1>DXConCmds.cpp(25): warning C4172: returning address of local variable or temporary
|
||||
All outputs are up-to-date.
|
||||
Link:
|
||||
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\link.exe /ERRORREPORT:PROMPT /OUT:"C:\Users\Robert MacGregor\Desktop\TSExtension\Release\BaseMod.dll" /INCREMENTAL:NO /NOLOGO kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /MANIFEST /ManifestFile:"Release\BaseMod.dll.intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"C:\Users\Robert MacGregor\Desktop\TSExtension\Release\BaseMod.pdb" /SUBSYSTEM:WINDOWS /OPT:REF /OPT:ICF /LTCG /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"C:\Users\Robert MacGregor\Desktop\TSExtension\Release\BaseMod.lib" /MACHINE:X86 /DLL Release\BaseMod.obj
|
||||
Release\dllmain.obj
|
||||
Release\DXAPI.obj
|
||||
Release\DXConCmds.obj
|
||||
Release\LinkerAPI.obj
|
||||
Release\stdafx.obj
|
||||
Creating library C:\Users\Robert MacGregor\Desktop\TSExtension\Release\BaseMod.lib and object C:\Users\Robert MacGregor\Desktop\TSExtension\Release\BaseMod.exp
|
||||
Generating code
|
||||
Finished generating code
|
||||
BaseMod.vcxproj -> C:\Users\Robert MacGregor\Desktop\TSExtension\Release\BaseMod.dll
|
||||
Manifest:
|
||||
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\mt.exe /nologo /verbose /outputresource:"C:\Users\Robert MacGregor\Desktop\TSExtension\Release\BaseMod.dll;#2" /manifest Release\BaseMod.dll.intermediate.manifest
|
||||
FinalizeBuildStatus:
|
||||
Deleting file "Release\BaseMod.unsuccessfulbuild".
|
||||
Touching "Release\BaseMod.lastbuildstate".
|
||||
1>Done Building Project "C:\Users\Robert MacGregor\Desktop\TSExtension\BaseMod\BaseMod.vcxproj" (build target(s)).
|
||||
|
||||
Build succeeded.
|
||||
|
||||
Time Elapsed 00:00:02.12
|
||||
BIN
Mod Sources/TSExtension/BaseMod/Release/BaseMod.pch
Normal file
BIN
Mod Sources/TSExtension/BaseMod/Release/BaseMod.pch
Normal file
Binary file not shown.
25
Mod Sources/TSExtension/BaseMod/Release/BaseMod.write.1.tlog
Normal file
25
Mod Sources/TSExtension/BaseMod/Release/BaseMod.write.1.tlog
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
^C:\Users\Robert MacGregor\Desktop\TSExtension\BaseMod\BaseMod.vcxproj
|
||||
C:\Users\Robert MacGregor\Desktop\TSExtension\Release\BaseMod.lib
|
||||
C:\Users\Robert MacGregor\Desktop\TSExtension\Release\BaseMod.lib
|
||||
C:\Users\Robert MacGregor\Desktop\TSExtension\Release\BaseMod.exp
|
||||
C:\Users\Robert MacGregor\Desktop\TSExtension\Release\BaseMod.exp
|
||||
^C:\Users\Robert MacGregor\Desktop\TSExtension\BaseMod\BaseMod.vcxproj
|
||||
C:\Users\Robert MacGregor\Desktop\TSExtension\Release\BaseMod.lib
|
||||
C:\Users\Robert MacGregor\Desktop\TSExtension\Release\BaseMod.lib
|
||||
C:\Users\Robert MacGregor\Desktop\TSExtension\Release\BaseMod.exp
|
||||
C:\Users\Robert MacGregor\Desktop\TSExtension\Release\BaseMod.exp
|
||||
^C:\Users\Robert MacGregor\Desktop\TSExtension\BaseMod\BaseMod.vcxproj
|
||||
C:\Users\Robert MacGregor\Desktop\TSExtension\Release\BaseMod.lib
|
||||
C:\Users\Robert MacGregor\Desktop\TSExtension\Release\BaseMod.lib
|
||||
C:\Users\Robert MacGregor\Desktop\TSExtension\Release\BaseMod.exp
|
||||
C:\Users\Robert MacGregor\Desktop\TSExtension\Release\BaseMod.exp
|
||||
^C:\Users\Robert MacGregor\Desktop\TSExtension\BaseMod\BaseMod.vcxproj
|
||||
C:\Users\Robert MacGregor\Desktop\TSExtension\Release\BaseMod.lib
|
||||
C:\Users\Robert MacGregor\Desktop\TSExtension\Release\BaseMod.lib
|
||||
C:\Users\Robert MacGregor\Desktop\TSExtension\Release\BaseMod.exp
|
||||
C:\Users\Robert MacGregor\Desktop\TSExtension\Release\BaseMod.exp
|
||||
^C:\Users\Robert MacGregor\Desktop\TSExtension\BaseMod\BaseMod.vcxproj
|
||||
C:\Users\Robert MacGregor\Desktop\TSExtension\Release\BaseMod.lib
|
||||
C:\Users\Robert MacGregor\Desktop\TSExtension\Release\BaseMod.lib
|
||||
C:\Users\Robert MacGregor\Desktop\TSExtension\Release\BaseMod.exp
|
||||
C:\Users\Robert MacGregor\Desktop\TSExtension\Release\BaseMod.exp
|
||||
BIN
Mod Sources/TSExtension/BaseMod/Release/CL.read.1.tlog
Normal file
BIN
Mod Sources/TSExtension/BaseMod/Release/CL.read.1.tlog
Normal file
Binary file not shown.
BIN
Mod Sources/TSExtension/BaseMod/Release/CL.write.1.tlog
Normal file
BIN
Mod Sources/TSExtension/BaseMod/Release/CL.write.1.tlog
Normal file
Binary file not shown.
BIN
Mod Sources/TSExtension/BaseMod/Release/cl.command.1.tlog
Normal file
BIN
Mod Sources/TSExtension/BaseMod/Release/cl.command.1.tlog
Normal file
Binary file not shown.
BIN
Mod Sources/TSExtension/BaseMod/Release/link.command.1.tlog
Normal file
BIN
Mod Sources/TSExtension/BaseMod/Release/link.command.1.tlog
Normal file
Binary file not shown.
BIN
Mod Sources/TSExtension/BaseMod/Release/link.read.1.tlog
Normal file
BIN
Mod Sources/TSExtension/BaseMod/Release/link.read.1.tlog
Normal file
Binary file not shown.
BIN
Mod Sources/TSExtension/BaseMod/Release/link.write.1.tlog
Normal file
BIN
Mod Sources/TSExtension/BaseMod/Release/link.write.1.tlog
Normal file
Binary file not shown.
BIN
Mod Sources/TSExtension/BaseMod/Release/mt.command.1.tlog
Normal file
BIN
Mod Sources/TSExtension/BaseMod/Release/mt.command.1.tlog
Normal file
Binary file not shown.
BIN
Mod Sources/TSExtension/BaseMod/Release/mt.read.1.tlog
Normal file
BIN
Mod Sources/TSExtension/BaseMod/Release/mt.read.1.tlog
Normal file
Binary file not shown.
BIN
Mod Sources/TSExtension/BaseMod/Release/mt.write.1.tlog
Normal file
BIN
Mod Sources/TSExtension/BaseMod/Release/mt.write.1.tlog
Normal file
Binary file not shown.
BIN
Mod Sources/TSExtension/BaseMod/Release/vc100.pdb
Normal file
BIN
Mod Sources/TSExtension/BaseMod/Release/vc100.pdb
Normal file
Binary file not shown.
19
Mod Sources/TSExtension/BaseMod/dllmain.cpp
Normal file
19
Mod Sources/TSExtension/BaseMod/dllmain.cpp
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
// dllmain.cpp : Defines the entry point for the DLL application.
|
||||
#include "stdafx.h"
|
||||
|
||||
BOOL APIENTRY DllMain( HMODULE hModule,
|
||||
DWORD ul_reason_for_call,
|
||||
LPVOID lpReserved
|
||||
)
|
||||
{
|
||||
switch (ul_reason_for_call)
|
||||
{
|
||||
case DLL_PROCESS_ATTACH:
|
||||
case DLL_THREAD_ATTACH:
|
||||
case DLL_THREAD_DETACH:
|
||||
case DLL_PROCESS_DETACH:
|
||||
break;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
8
Mod Sources/TSExtension/BaseMod/stdafx.cpp
Normal file
8
Mod Sources/TSExtension/BaseMod/stdafx.cpp
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
// stdafx.cpp : source file that includes just the standard includes
|
||||
// BaseMod.pch will be the pre-compiled header
|
||||
// stdafx.obj will contain the pre-compiled type information
|
||||
|
||||
#include "stdafx.h"
|
||||
|
||||
// TODO: reference any additional headers you need in STDAFX.H
|
||||
// and not in this file
|
||||
12
Mod Sources/TSExtension/BaseMod/stdafx.h
Normal file
12
Mod Sources/TSExtension/BaseMod/stdafx.h
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
// stdafx.h : include file for standard system include files,
|
||||
// or project specific include files that are used frequently, but
|
||||
// are changed infrequently
|
||||
//
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "targetver.h"
|
||||
|
||||
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
|
||||
// Windows Header Files:
|
||||
#include <windows.h>
|
||||
8
Mod Sources/TSExtension/BaseMod/targetver.h
Normal file
8
Mod Sources/TSExtension/BaseMod/targetver.h
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
#pragma once
|
||||
|
||||
// Including SDKDDKVer.h defines the highest available Windows platform.
|
||||
|
||||
// If you wish to build your application for a previous Windows platform, include WinSDKVer.h and
|
||||
// set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h.
|
||||
|
||||
#include <SDKDDKVer.h>
|
||||
Loading…
Add table
Add a link
Reference in a new issue