Initial commit.

This commit is contained in:
Ragora 2014-08-05 00:46:46 -04:00
parent 9538049d44
commit 44e5f33ee7
99 changed files with 2363 additions and 0 deletions

View 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);
}
}

View 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 )

View 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>

View 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>

View 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>

View 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;
}
}
}

View 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);
}

View 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;
}

View 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[]);

View 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;

View 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);

View 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.
/////////////////////////////////////////////////////////////////////////////

View file

@ -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

View file

@ -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>

View file

@ -0,0 +1,2 @@
#v4.0:v100
Release|Win32|C:\Users\Robert MacGregor\Desktop\TSExtension\|

View 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

Binary file not shown.

View 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

Binary file not shown.

Binary file not shown.

Binary file not shown.

View 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;
}

View 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

View 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>

View 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>