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

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual C++ Express 2010
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BaseMod", "BaseMod\BaseMod.vcxproj", "{2A498B2D-84B2-4BBF-9532-EA17E5BA51BB}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{2A498B2D-84B2-4BBF-9532-EA17E5BA51BB}.Debug|Win32.ActiveCfg = Debug|Win32
{2A498B2D-84B2-4BBF-9532-EA17E5BA51BB}.Debug|Win32.Build.0 = Debug|Win32
{2A498B2D-84B2-4BBF-9532-EA17E5BA51BB}.Release|Win32.ActiveCfg = Release|Win32
{2A498B2D-84B2-4BBF-9532-EA17E5BA51BB}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

Binary file not shown.

View file

@ -0,0 +1,13 @@
// BaseMod.cpp : Defines the exported functions for the DLL application.
//
#include "stdafx.h"
#include "BaseMod.h"
extern "C"
{
BASEMOD_API void ModInitialize(void)
{
return;
}
}

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,100 @@
<?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>Use</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>Use</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="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="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,42 @@
<?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>
</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>
</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,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,2 @@
#v4.0:v100
Release|Win32|C:\Users\Robert MacGregor\Desktop\BaseMod\|

View file

@ -0,0 +1,27 @@
Build started 7/29/2014 11:01:02 PM.
1>Project "C:\Users\Robert MacGregor\Desktop\BaseMod\BaseMod\BaseMod.vcxproj" on node 2 (build target(s)).
1>InitializeBuildStatus:
Creating "Release\BaseMod.unsuccessfulbuild" because "AlwaysCreate" was specified.
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 /Yu"StdAfx.h" /Fp"Release\BaseMod.pch" /Fo"Release\\" /Fd"Release\vc100.pdb" /Gd /TP /analyze- /errorReport:prompt BaseMod.cpp
BaseMod.cpp
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\BaseMod\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\BaseMod\Release\BaseMod.pdb" /SUBSYSTEM:WINDOWS /OPT:REF /OPT:ICF /LTCG /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"C:\Users\Robert MacGregor\Desktop\BaseMod\Release\BaseMod.lib" /MACHINE:X86 /DLL Release\BaseMod.obj
Release\dllmain.obj
Release\stdafx.obj
Creating library C:\Users\Robert MacGregor\Desktop\BaseMod\Release\BaseMod.lib and object C:\Users\Robert MacGregor\Desktop\BaseMod\Release\BaseMod.exp
Generating code
Finished generating code
BaseMod.vcxproj -> C:\Users\Robert MacGregor\Desktop\BaseMod\Release\BaseMod.dll
Manifest:
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\mt.exe /nologo /verbose /outputresource:"C:\Users\Robert MacGregor\Desktop\BaseMod\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\BaseMod\BaseMod\BaseMod.vcxproj" (build target(s)).
Build succeeded.
Time Elapsed 00:00:00.45

View file

@ -0,0 +1,15 @@
^C:\Users\Robert MacGregor\Desktop\BaseMod\BaseMod\BaseMod.vcxproj
C:\Users\Robert MacGregor\Desktop\BaseMod\Release\BaseMod.lib
C:\Users\Robert MacGregor\Desktop\BaseMod\Release\BaseMod.lib
C:\Users\Robert MacGregor\Desktop\BaseMod\Release\BaseMod.exp
C:\Users\Robert MacGregor\Desktop\BaseMod\Release\BaseMod.exp
^C:\Users\Robert MacGregor\Desktop\BaseMod\BaseMod\BaseMod.vcxproj
C:\Users\Robert MacGregor\Desktop\BaseMod\Release\BaseMod.lib
C:\Users\Robert MacGregor\Desktop\BaseMod\Release\BaseMod.lib
C:\Users\Robert MacGregor\Desktop\BaseMod\Release\BaseMod.exp
C:\Users\Robert MacGregor\Desktop\BaseMod\Release\BaseMod.exp
^C:\Users\Robert MacGregor\Desktop\BaseMod\BaseMod\BaseMod.vcxproj
C:\Users\Robert MacGregor\Desktop\BaseMod\Release\BaseMod.lib
C:\Users\Robert MacGregor\Desktop\BaseMod\Release\BaseMod.lib
C:\Users\Robert MacGregor\Desktop\BaseMod\Release\BaseMod.exp
C:\Users\Robert MacGregor\Desktop\BaseMod\Release\BaseMod.exp

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

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,16 @@
// 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>
// TODO: reference additional headers your program requires here

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>

Binary file not shown.

View file

@ -0,0 +1,22 @@
// BaseMod.cpp : Defines the exported functions for the DLL application.
//
#include "stdafx.h"
#include "BaseMod.h"
#include "t2api.h"
#include "randomCmds.h"
extern "C"
{
BASEMOD_API void ModInitialize(void)
{
Con::addMethodS(NULL,"getRandom",&conMRandom,"Random number generation based upon the Mersenne Twister algorithm.",1,3);
Con::addMethodS(NULL,"seedRand",&conMSeed,"Reseeds the Mersenne Twister random number generator.",2,2);
Con::addMethodS(NULL,"getRandomFloat",&conMRandomFloat,"Random number generation based upon the Mersenne Twister algorithm.",1,3);
Con::addMethodS(NULL,"QPCBegin",&conQPCBegin,"Begins the performance counter.",1,1);
Con::addMethodS(NULL,"QPCEnd",&conQPCEnd,"Ends the performance counter and returns the time in seconds.",2,2);
return;
}
}

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,107 @@
<?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>
<ProjectName>RandomMod</ProjectName>
</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>Use</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>Use</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="mt.h" />
<ClInclude Include="randomCmds.h" />
<ClInclude Include="stdafx.h" />
<ClInclude Include="t2api.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="mt.cc" />
<ClCompile Include="randomCmds.cpp" />
<ClCompile Include="stdafx.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
</ClCompile>
<ClCompile Include="t2api.cpp" />
</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="mt.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="t2api.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="randomCmds.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="mt.cc">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="t2api.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="randomCmds.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,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,2 @@
#v4.0:v100
Release|Win32|C:\Users\Robert MacGregor\Desktop\BaseMod\|

View file

@ -0,0 +1,30 @@
Build started 7/31/2014 6:32:18 PM.
1>Project "C:\Users\Robert MacGregor\Desktop\RandomMod\BaseMod\BaseMod.vcxproj" on node 2 (build target(s)).
1>InitializeBuildStatus:
Creating "Release\RandomMod.unsuccessfulbuild" because "AlwaysCreate" was specified.
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 /Yu"StdAfx.h" /Fp"Release\RandomMod.pch" /Fo"Release\\" /Fd"Release\vc100.pdb" /Gd /TP /analyze- /errorReport:prompt BaseMod.cpp
BaseMod.cpp
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\RandomMod\Release\RandomMod.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\RandomMod.dll.intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"C:\Users\Robert MacGregor\Desktop\RandomMod\Release\RandomMod.pdb" /SUBSYSTEM:WINDOWS /OPT:REF /OPT:ICF /LTCG /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"C:\Users\Robert MacGregor\Desktop\RandomMod\Release\RandomMod.lib" /MACHINE:X86 /DLL Release\BaseMod.obj
Release\dllmain.obj
Release\mt.obj
Release\randomCmds.obj
Release\stdafx.obj
Release\t2api.obj
Creating library C:\Users\Robert MacGregor\Desktop\RandomMod\Release\RandomMod.lib and object C:\Users\Robert MacGregor\Desktop\RandomMod\Release\RandomMod.exp
Generating code
Finished generating code
BaseMod.vcxproj -> C:\Users\Robert MacGregor\Desktop\RandomMod\Release\RandomMod.dll
Manifest:
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\mt.exe /nologo /verbose /outputresource:"C:\Users\Robert MacGregor\Desktop\RandomMod\Release\RandomMod.dll;#2" /manifest Release\RandomMod.dll.intermediate.manifest
FinalizeBuildStatus:
Deleting file "Release\RandomMod.unsuccessfulbuild".
Touching "Release\RandomMod.lastbuildstate".
1>Done Building Project "C:\Users\Robert MacGregor\Desktop\RandomMod\BaseMod\BaseMod.vcxproj" (build target(s)).
Build succeeded.
Time Elapsed 00:00:00.71

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,37 @@
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\RandomMod\BaseMod\Release\BaseMod.dll.intermediate.manifest
C:\USERS\ROBERT MACGREGOR\DESKTOP\RANDOMMOD\BASEMOD\RELEASE\BASEMOD.OBJ
C:\Users\Robert MacGregor\Desktop\RandomMod\BaseMod\Release\BaseMod.pch
C:\Users\Robert MacGregor\Desktop\RandomMod\BaseMod\Release\BaseMod.vcxprojResolveAssemblyReference.cache
C:\Users\Robert MacGregor\Desktop\RandomMod\BaseMod\Release\BaseMod.write.1.tlog
C:\Users\Robert MacGregor\Desktop\RandomMod\BaseMod\Release\cl.command.1.tlog
C:\Users\Robert MacGregor\Desktop\RandomMod\BaseMod\Release\CL.read.1.tlog
C:\Users\Robert MacGregor\Desktop\RandomMod\BaseMod\Release\CL.write.1.tlog
C:\USERS\ROBERT MACGREGOR\DESKTOP\RANDOMMOD\BASEMOD\RELEASE\DLLMAIN.OBJ
C:\Users\Robert MacGregor\Desktop\RandomMod\BaseMod\Release\link.command.1.tlog
C:\Users\Robert MacGregor\Desktop\RandomMod\BaseMod\Release\link.read.1.tlog
C:\Users\Robert MacGregor\Desktop\RandomMod\BaseMod\Release\link.write.1.tlog
C:\Users\Robert MacGregor\Desktop\RandomMod\BaseMod\Release\mt.command.1.tlog
C:\USERS\ROBERT MACGREGOR\DESKTOP\RANDOMMOD\BASEMOD\RELEASE\MT.OBJ
C:\Users\Robert MacGregor\Desktop\RandomMod\BaseMod\Release\mt.read.1.tlog
C:\Users\Robert MacGregor\Desktop\RandomMod\BaseMod\Release\mt.write.1.tlog
C:\Users\Robert MacGregor\Desktop\RandomMod\BaseMod\Release\randomCmds.obj
C:\USERS\ROBERT MACGREGOR\DESKTOP\RANDOMMOD\BASEMOD\RELEASE\RANDOMMOD.DLL.INTERMEDIATE.MANIFEST
C:\USERS\ROBERT MACGREGOR\DESKTOP\RANDOMMOD\BASEMOD\RELEASE\RANDOMMOD.PCH
C:\Users\Robert MacGregor\Desktop\RandomMod\BaseMod\Release\RandomMod.write.1.tlog
C:\USERS\ROBERT MACGREGOR\DESKTOP\RANDOMMOD\BASEMOD\RELEASE\STDAFX.OBJ
C:\USERS\ROBERT MACGREGOR\DESKTOP\RANDOMMOD\BASEMOD\RELEASE\T2API.OBJ
C:\USERS\ROBERT MACGREGOR\DESKTOP\RANDOMMOD\BASEMOD\RELEASE\VC100.PDB
C:\USERS\ROBERT MACGREGOR\DESKTOP\RANDOMMOD\RELEASE\RANDOMMOD.DLL
C:\Users\Robert MacGregor\Desktop\RandomMod\Release\RandomMod.exp
C:\Users\Robert MacGregor\Desktop\RandomMod\Release\RandomMod.lib
C:\USERS\ROBERT MACGREGOR\DESKTOP\RANDOMMOD\RELEASE\RANDOMMOD.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\RandomMod\|

Binary file not shown.

View file

@ -0,0 +1,45 @@
^C:\Users\Robert MacGregor\Desktop\RandomMod\BaseMod\BaseMod.vcxproj
C:\Users\Robert MacGregor\Desktop\RandomMod\Release\RandomMod.lib
C:\Users\Robert MacGregor\Desktop\RandomMod\Release\RandomMod.lib
C:\Users\Robert MacGregor\Desktop\RandomMod\Release\RandomMod.exp
C:\Users\Robert MacGregor\Desktop\RandomMod\Release\RandomMod.exp
^C:\Users\Robert MacGregor\Desktop\RandomMod\BaseMod\BaseMod.vcxproj
C:\Users\Robert MacGregor\Desktop\RandomMod\Release\RandomMod.lib
C:\Users\Robert MacGregor\Desktop\RandomMod\Release\RandomMod.lib
C:\Users\Robert MacGregor\Desktop\RandomMod\Release\RandomMod.exp
C:\Users\Robert MacGregor\Desktop\RandomMod\Release\RandomMod.exp
^C:\Users\Robert MacGregor\Desktop\RandomMod\BaseMod\BaseMod.vcxproj
C:\Users\Robert MacGregor\Desktop\RandomMod\Release\RandomMod.lib
C:\Users\Robert MacGregor\Desktop\RandomMod\Release\RandomMod.lib
C:\Users\Robert MacGregor\Desktop\RandomMod\Release\RandomMod.exp
C:\Users\Robert MacGregor\Desktop\RandomMod\Release\RandomMod.exp
^C:\Users\Robert MacGregor\Desktop\RandomMod\BaseMod\BaseMod.vcxproj
C:\Users\Robert MacGregor\Desktop\RandomMod\Release\RandomMod.lib
C:\Users\Robert MacGregor\Desktop\RandomMod\Release\RandomMod.lib
C:\Users\Robert MacGregor\Desktop\RandomMod\Release\RandomMod.exp
C:\Users\Robert MacGregor\Desktop\RandomMod\Release\RandomMod.exp
^C:\Users\Robert MacGregor\Desktop\RandomMod\BaseMod\BaseMod.vcxproj
C:\Users\Robert MacGregor\Desktop\RandomMod\Release\RandomMod.lib
C:\Users\Robert MacGregor\Desktop\RandomMod\Release\RandomMod.lib
C:\Users\Robert MacGregor\Desktop\RandomMod\Release\RandomMod.exp
C:\Users\Robert MacGregor\Desktop\RandomMod\Release\RandomMod.exp
^C:\Users\Robert MacGregor\Desktop\RandomMod\BaseMod\BaseMod.vcxproj
C:\Users\Robert MacGregor\Desktop\RandomMod\Release\RandomMod.lib
C:\Users\Robert MacGregor\Desktop\RandomMod\Release\RandomMod.lib
C:\Users\Robert MacGregor\Desktop\RandomMod\Release\RandomMod.exp
C:\Users\Robert MacGregor\Desktop\RandomMod\Release\RandomMod.exp
^C:\Users\Robert MacGregor\Desktop\RandomMod\BaseMod\BaseMod.vcxproj
C:\Users\Robert MacGregor\Desktop\RandomMod\Release\RandomMod.lib
C:\Users\Robert MacGregor\Desktop\RandomMod\Release\RandomMod.lib
C:\Users\Robert MacGregor\Desktop\RandomMod\Release\RandomMod.exp
C:\Users\Robert MacGregor\Desktop\RandomMod\Release\RandomMod.exp
^C:\Users\Robert MacGregor\Desktop\RandomMod\BaseMod\BaseMod.vcxproj
C:\Users\Robert MacGregor\Desktop\RandomMod\Release\RandomMod.lib
C:\Users\Robert MacGregor\Desktop\RandomMod\Release\RandomMod.lib
C:\Users\Robert MacGregor\Desktop\RandomMod\Release\RandomMod.exp
C:\Users\Robert MacGregor\Desktop\RandomMod\Release\RandomMod.exp
^C:\Users\Robert MacGregor\Desktop\RandomMod\BaseMod\BaseMod.vcxproj
C:\Users\Robert MacGregor\Desktop\RandomMod\Release\RandomMod.lib
C:\Users\Robert MacGregor\Desktop\RandomMod\Release\RandomMod.lib
C:\Users\Robert MacGregor\Desktop\RandomMod\Release\RandomMod.exp
C:\Users\Robert MacGregor\Desktop\RandomMod\Release\RandomMod.exp

Binary file not shown.

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,264 @@
/**
* C++ Mersenne Twister wrapper class written by
* Jason R. Blevins <jrblevin@sdf.lonestar.org> on July 24, 2006.
* Based on the original MT19937 C code by
* Takuji Nishimura and Makoto Matsumoto.
*/
/*
A C-program for MT19937, with initialization improved 2002/1/26.
Coded by Takuji Nishimura and Makoto Matsumoto.
Before using, initialize the state by using init_genrand(seed)
or init_by_array(init_key, key_length).
Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura,
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. The names of its contributors may not be used to endorse or promote
products derived from this software without specific prior written
permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Any feedback is very welcome.
http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html
email: m-mat @ math.sci.hiroshima-u.ac.jp (remove space)
*/
#include "stdafx.h"
#include <iostream>
#include <cassert>
#include "mt.h"
/**
* Constructor
*/
MersenneTwister::MersenneTwister(void):
mt_(new unsigned long[N]), mti_(N+1),
init_key_(NULL), key_length_(0), s_(0),
seeded_by_array_(false), seeded_by_int_(false)
{
unsigned long init[4] = { 0x123, 0x234, 0x345, 0x456 };
unsigned long length = 4;
init_by_array(init, length);
}
/**
* Destructor
*/
MersenneTwister::~MersenneTwister(void)
{
assert(mt_ != NULL);
delete[] mt_;
mt_ = NULL;
assert(init_key_ != NULL);
delete[] init_key_;
init_key_ = NULL;
}
/**
* Initializes the Mersenne Twister with a seed.
*
* \param s seed
*/
void MersenneTwister::init_genrand(unsigned long s)
{
mt_[0]= s & 0xffffffffUL;
for (mti_=1; mti_<N; mti_++) {
mt_[mti_] =
(1812433253UL * (mt_[mti_-1] ^ (mt_[mti_-1] >> 30)) + mti_);
/* See Knuth TAOCP Vol2. 3rd Ed. P.106 for multiplier. */
/* In the previous versions, MSBs of the seed affect */
/* only MSBs of the array mt_[]. */
/* 2002/01/09 modified by Makoto Matsumoto */
mt_[mti_] &= 0xffffffffUL;
/* for >32 bit machines */
}
// Store the seed
s_ = s;
seeded_by_array_ = false;
seeded_by_int_ = true;
}
/**
* Seed the Mersenne Twister using an array.
*
* \param init_key an array for initializing keys
* \param key_length the length of \a init_key
*/
void MersenneTwister::init_by_array(unsigned long* init_key, int key_length)
{
// Store the key array
int i, j, k;
init_genrand(19650218UL);
i=1; j=0;
k = (N>key_length ? N : key_length);
for (; k; k--) {
mt_[i] = (mt_[i] ^ ((mt_[i-1] ^ (mt_[i-1] >> 30)) * 1664525UL))
+ init_key[j] + j; /* non linear */
mt_[i] &= 0xffffffffUL; /* for WORDSIZE > 32 machines */
i++; j++;
if (i>=N) { mt_[0] = mt_[N-1]; i=1; }
if (j>=key_length) j=0;
}
for (k=N-1; k; k--) {
mt_[i] = (mt_[i] ^ ((mt_[i-1] ^ (mt_[i-1] >> 30)) * 1566083941UL))
- i; /* non linear */
mt_[i] &= 0xffffffffUL; /* for WORDSIZE > 32 machines */
i++;
if (i>=N) { mt_[0] = mt_[N-1]; i=1; }
}
mt_[0] = 0x80000000UL; /* MSB is 1; assuring non-zero initial array */
// Store the seed
if (init_key_ != NULL) {
delete[] init_key_;
}
init_key_ = new unsigned long[key_length];
for (int k = 0; k < key_length; k++) {
init_key_[k] = init_key[k];
}
key_length_ = key_length;
seeded_by_int_ = false;
seeded_by_array_ = true;
}
/**
* Generates a random number on [0,0xffffffff]-interval
*
* \return random number on [0, 0xffffffff]
*/
unsigned long MersenneTwister::genrand_int32(void)
{
unsigned long y;
static unsigned long mag01[2]={0x0UL, MATRIX_A};
/* mag01[x] = x * MATRIX_A for x=0,1 */
if (mti_ >= N) { /* generate N words at one time */
int kk;
if (mti_ == N+1) /* if init_genrand() has not been called, */
init_genrand(5489UL); /* a default initial seed is used */
for (kk=0;kk<N-M;kk++) {
y = (mt_[kk]&UPPER_MASK)|(mt_[kk+1]&LOWER_MASK);
mt_[kk] = mt_[kk+M] ^ (y >> 1) ^ mag01[y & 0x1UL];
}
for (;kk<N-1;kk++) {
y = (mt_[kk]&UPPER_MASK)|(mt_[kk+1]&LOWER_MASK);
mt_[kk] = mt_[kk+(M-N)] ^ (y >> 1) ^ mag01[y & 0x1UL];
}
y = (mt_[N-1]&UPPER_MASK)|(mt_[0]&LOWER_MASK);
mt_[N-1] = mt_[M-1] ^ (y >> 1) ^ mag01[y & 0x1UL];
mti_ = 0;
}
y = mt_[mti_++];
/* Tempering */
y ^= (y >> 11);
y ^= (y << 7) & 0x9d2c5680UL;
y ^= (y << 15) & 0xefc60000UL;
y ^= (y >> 18);
return y;
}
/**
* Generates a random integer on [0,0x7fffffff].
*
* \return a random integer on [0,0x7fffffff]
*/
long MersenneTwister::genrand_int31(void)
{
return (long)(genrand_int32()>>1);
}
/**
* Generates a random real number on [0,1].
*
* \return a random real number on [0,1]
*/
double MersenneTwister::genrand_real1(void)
{
return genrand_int32()*(1.0/4294967295.0);
/* divided by 2^32-1 */
}
/**
* Generates a random real number on [0,1).
*
* \return a random real number on [0,1)
*/
double MersenneTwister::genrand_real2(void)
{
return genrand_int32()*(1.0/4294967296.0);
/* divided by 2^32 */
}
/**
* Generates a random real number on (0,1).
*
* \return a random real number on (0,1)
*/
double MersenneTwister::genrand_real3(void)
{
return (((double)genrand_int32()) + 0.5)*(1.0/4294967296.0);
/* divided by 2^32 */
}
/**
* Generates a random real number on [0,1) with 53-bit precision.
*
* \return a random 53-bit real number on [0,1)
*/
double MersenneTwister::genrand_res53(void)
{
unsigned long a=genrand_int32()>>5, b=genrand_int32()>>6;
return(a*67108864.0+b)*(1.0/9007199254740992.0);
}
/* These real versions are due to Isaku Wada, 2002/01/09 added */
/**
* Print interesting information about the Mersenne Twister.
*
*/
void MersenneTwister::print(void)
{
std::cout << "MersenneTwister (M. Matsumoto and T. Nishimura), seed = ";
if (seeded_by_int_) {
std::cout << s_ << std::endl;
} else {
std::cout << "[ ";
for (int k = 0; k < key_length_; k++) {
std::cout << init_key_[k] << " ";
}
std::cout << "]" << std::endl;
}
}

View file

@ -0,0 +1,60 @@
/**
* mt.h: Mersenne Twister header file
*
* Jason R. Blevins <jrblevin@sdf.lonestar.org>
* Durham, March 7, 2007
*/
#ifndef METRICS_MT_H
#define METRICS_MT_H
/**
* Mersenne Twister.
*
* M. Matsumoto and T. Nishimura, "Mersenne Twister: A
* 623-dimensionally equidistributed uniform pseudorandom number
* generator", ACM Trans. on Modeling and Computer Simulation Vol. 8,
* No. 1, January pp.3-30 (1998).
*
* http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html.
*/
class MersenneTwister
{
public:
MersenneTwister(void);
~MersenneTwister(void);
double random(void) { return genrand_real1(); }
void print(void);
void init_genrand(unsigned long s);
void init_by_array(unsigned long* init_key, int key_length);
unsigned long genrand_int32(void);
long genrand_int31(void);
double genrand_real1(void);
double genrand_real2(void);
double genrand_real3(void);
double genrand_res53(void);
private:
static const int N = 624;
static const int M = 397;
// constant vector a
static const unsigned long MATRIX_A = 0x9908b0dfUL;
// most significant w-r bits
static const unsigned long UPPER_MASK = 0x80000000UL;
// least significant r bits
static const unsigned long LOWER_MASK = 0x7fffffffUL;
unsigned long* mt_; // the state vector
int mti_; // mti == N+1 means mt not initialized
unsigned long* init_key_; // Storage for the seed vector
int key_length_; // Seed vector length
unsigned long s_; // Seed integer
bool seeded_by_array_; // Seeded by an array
bool seeded_by_int_; // Seeded by an integer
};
#endif // METRICS_MT_H

View file

@ -0,0 +1,169 @@
#include "stdafx.h"
#include <math.h>
#include <cstdlib>
#include <stdio.h>
#include "mt.h"
#include "t2api.h"
// Merscenne Twister
MersenneTwister *mt = NULL;
const char *conMRandom(SimObject *obj, S32 argc, const char *argv[])
{
if (!mt)
{
mt = new MersenneTwister;
mt->init_genrand(time(NULL));
}
char mem[256];
memset(mem, 0x00, 255);
if (argc == 1)
{
sprintf_s(mem, 256, "%f", mt->random());
return mem;
}
char *a_c = (char*)argv[1];
char *b_c;
if (argc == 3)
b_c = (char*)argv[2];
else if (argc == 2)
{
b_c = a_c;
a_c = "0";
}
int a = atoi(a_c);
int b = atoi(b_c);
// Check to see if we have any negative arguments
if (a < 0)
{
int max = b + abs(a);
int rand = mt->genrand_int32() % (max);
if (rand > b)
rand = -(rand-b);
sprintf_s(mem, 256, "%d", rand);
return mem;
}
sprintf_s(mem, 256, "%f", floor(mt->random() * b + a));
return mem;
}
const char *conMRandomFloat(SimObject *obj, S32 argc, const char *argv[])
{
if (!mt)
{
mt = new MersenneTwister;
mt->init_genrand(time(NULL));
}
char mem[256];
memset(mem, 0x00, 255);
if (argc == 1)
{
sprintf_s(mem, 256, "%f", mt->random());
return mem;
}
char *a_c = (char*)argv[1];
char *b_c;
if (argc == 3)
b_c = (char*)argv[2];
else if (argc == 2)
{
b_c = a_c;
a_c = "0";
}
float a = atof(a_c);
float b = atof(b_c);
if (a > b)
{
int d = b;
b = a;
a = d;
}
sprintf_s(mem, 256, "%f", mt->random() * b + a);
return mem;
}
const char *conMSeed(SimObject *obj, S32 argc, const char *argv[])
{
if (!mt)
{
mt = new MersenneTwister;
mt->init_genrand(time(NULL));
}
const char *a_c = argv[1];
unsigned long a = 0;
unsigned int len = strlen(a_c);
for (unsigned int i = 0; i < len; i++)
if ( a_c[i] > 57 || a_c[i] < 48)
{
mt->init_by_array((unsigned long*)a_c, len+1);
return "1";
}
a = atof(a_c);
mt->init_genrand(a);
return "1";
}
#define QPC_MAX_STOPWATCHES 20
static unsigned int CURRENT_STOPWATCH_COUNT = 0;
static __int64 QPC_STOPWATCHES[QPC_MAX_STOPWATCHES];
__int64 STARTING_QPC_TIME;
const char*conQPCBegin(SimObject *obj, S32 argc, const char *argv[])
{
if (!QueryPerformanceCounter((LARGE_INTEGER*)&QPC_STOPWATCHES[CURRENT_STOPWATCH_COUNT]))
{
Con::errorf(0, "QPCBegin(): Failed to start timer! (%u)", GetLastError());
return "-1";
}
else if (CURRENT_STOPWATCH_COUNT >= QPC_MAX_STOPWATCHES)
{
Con::errorf(0, "QPCBegin(): Too many stopwatches active! (Maximum: %u)", QPC_MAX_STOPWATCHES);
return "-1";
}
unsigned int return_value = CURRENT_STOPWATCH_COUNT;
char result[256];
sprintf_s<256>(result, "%u", return_value);
CURRENT_STOPWATCH_COUNT++;
return result;
}
const char*conQPCEnd(SimObject *obj, S32 argc, const char *argv[])
{
__int64 ENDING_QPC_TIME;
if (!QueryPerformanceCounter((LARGE_INTEGER*)&ENDING_QPC_TIME))
{
Con::errorf(0, "QPCEnd(): Failed to stop timer! (%u)", GetLastError());
return "-1";
}
else if (CURRENT_STOPWATCH_COUNT == 0)
{
Con::errorf(0, "QPCEnd(): No stopwatches to stop!");
return "-1";
}
__int64 qpc_frequency;
QueryPerformanceFrequency((LARGE_INTEGER*)&qpc_frequency);
char result[256];
sprintf_s<256>(result, "%f", ((QPC_STOPWATCHES[CURRENT_STOPWATCH_COUNT - 1]) - ENDING_QPC_TIME) * 1.0 / qpc_frequency);
CURRENT_STOPWATCH_COUNT--;
return result;
}

View file

@ -0,0 +1,14 @@
#include "stdafx.h"
const char* conGuiTsCtrlProject(SimObject *obj,S32 argc, const char* argv[]);
bool conNetObjectSetGhostable(SimObject *obj,S32 argc, const char* argv[]);
const char* conGetVariable(SimObject *obj,S32 argc, const char* argv[]);
// Merscenne Random
const char *conMRandom(SimObject *obj, S32 argc, const char *argv[]);
const char *conMSeed(SimObject *obj, S32 argc, const char *argv[]);
const char *conMRandomFloat(SimObject *obj, S32 argc, const char *argv[]);
// Clock
const char*conQPCBegin(SimObject *obj, S32 argc, const char *argv[]);
const char*conQPCEnd(SimObject *obj, S32 argc, const char *argv[]);

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,17 @@
// 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 <time.h>
#include <windows.h>
// TODO: reference additional headers your program requires here

View file

@ -0,0 +1,86 @@
#include "stdafx.h"
#include "t2api.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,109 @@
#pragma once
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);

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>

View file

@ -0,0 +1,20 @@

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual C++ Express 2010
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BaseMod", "BaseMod\BaseMod.vcxproj", "{2A498B2D-84B2-4BBF-9532-EA17E5BA51BB}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{2A498B2D-84B2-4BBF-9532-EA17E5BA51BB}.Debug|Win32.ActiveCfg = Debug|Win32
{2A498B2D-84B2-4BBF-9532-EA17E5BA51BB}.Debug|Win32.Build.0 = Debug|Win32
{2A498B2D-84B2-4BBF-9532-EA17E5BA51BB}.Release|Win32.ActiveCfg = Release|Win32
{2A498B2D-84B2-4BBF-9532-EA17E5BA51BB}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

Binary file not shown.

View file

@ -0,0 +1,20 @@

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual C++ Express 2010
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BaseMod", "BaseMod\BaseMod.vcxproj", "{2A498B2D-84B2-4BBF-9532-EA17E5BA51BB}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{2A498B2D-84B2-4BBF-9532-EA17E5BA51BB}.Debug|Win32.ActiveCfg = Debug|Win32
{2A498B2D-84B2-4BBF-9532-EA17E5BA51BB}.Debug|Win32.Build.0 = Debug|Win32
{2A498B2D-84B2-4BBF-9532-EA17E5BA51BB}.Release|Win32.ActiveCfg = Release|Win32
{2A498B2D-84B2-4BBF-9532-EA17E5BA51BB}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

Binary file not shown.

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>

Binary file not shown.

Binary file not shown.

1
ModLoader Submodule

@ -0,0 +1 @@
Subproject commit 3e7e0a16cc1826031505b2d7a71e1dafa6624ca9