diff --git a/Tools/projectGenerator/btargets/targets.inc b/Tools/projectGenerator/btargets/targets.inc
index 0f010c936..d84a119df 100644
--- a/Tools/projectGenerator/btargets/targets.inc
+++ b/Tools/projectGenerator/btargets/targets.inc
@@ -116,6 +116,31 @@ $c->setDotNetInfo('vc2010_csproj.tpl');
$c->setDontCompilePatterns( "#/platformPOSIX.*#", "#/platformMac.*#", "#\.mac\.#", "#/mac/#", "#\.mm$#", "#\.m$#" );
+///////////////////////////// VS2012 /////////////////////////////
+
+$c = BuildTarget::add( 'VS2012', // Name
+ 'buildFiles/VisualStudio 2012', // Solution output directory
+ 'projects/', // Project output directory (relative to solution)
+ '../../source/', // Base directory
+ 'vc2012_proj.tpl', // App Project Template
+ 'vc2012_shared.tpl', // Shared App Project Template
+ 'vc2012_lib_proj.tpl', // Lib Project Template
+ 'vc2012_dll_proj.tpl', // Shared Lib Project Template
+ 'vc2012_activex_proj.tpl', // ActiveX Control
+ '.vcxproj' ); // File ext to write the project to
+
+// Solution template and extension
+$c->setSolutionInfo( 'vc2012_sln.tpl', '', '.sln', 'vc2012_filter.tpl' );
+
+$c->setFileExtensions( 'c', 'cc', 'h', 'cpp', 'inl', 'asm', 'rc', 'm', 'mm', 'cs' );
+$c->setSourceFileExtensions( 'c', 'cc', 'cpp' );
+
+$c->setPlatforms( "win", "win32" );
+
+$c->setDotNetInfo('vc2012_csproj.tpl');
+
+$c->setDontCompilePatterns( "#/platformPOSIX.*#", "#/platformMac.*#", "#\.mac\.#", "#/mac/#", "#\.mm$#", "#\.m$#" );
+
/////////////////////////// XCode /////////////////////////////
$c = BuildTarget::add( 'Xcode', // Name
diff --git a/Tools/projectGenerator/templates/vc2012_activex_proj.tpl b/Tools/projectGenerator/templates/vc2012_activex_proj.tpl
new file mode 100644
index 000000000..d7f5e53f3
--- /dev/null
+++ b/Tools/projectGenerator/templates/vc2012_activex_proj.tpl
@@ -0,0 +1,201 @@
+
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+
+ {$GUID}
+ AtlProj
+
+
+
+ DynamicLibrary
+ Static
+ Unicode
+
+
+ DynamicLibrary
+ Static
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ProjectFileVersion>10.0.30319.1
+ {$projectOffset}../../{$gameFolder}/
+ {$projectOffset}../Link/VC2010.$(Configuration).$(PlatformName)/$(ProjectName)/
+ true
+ true
+ {$projOutName}
+ {$projectOffset}../../{$gameFolder}/
+ {$projectOffset}../Link/VC2010.$(Configuration).$(PlatformName)/$(ProjectName)/
+ true
+ false
+ {$projOutName}
+
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+ false
+ Win32
+ true
+ $(IntDir)IEWebGamePlugin.tlb
+ ..\..\..\web\source\activex\IEWebGamePlugin_i.h
+
+
+ ..\..\..\web\source\activex\IEWebGamePlugin_i.c
+ ..\..\..\web\source\activex\IEWebGamePlugin_p.c
+ true
+
+
+ Disabled
+ WIN32;_WINDOWS;_DEBUG;_USRDLL;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+ true
+ EnableFastChecks
+ MultiThreadedDebug
+ Use
+ Level3
+ EditAndContinue
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+ 0x0409
+ $(IntDir);%(AdditionalIncludeDirectories)
+
+
+ true
+ true
+ ..\..\..\web\source\activex\IEWebGamePlugin.def
+ true
+ Windows
+ MachineX86
+ $(OutDir){$projOutName}.dll
+ $(IntDir)$(ProjectName).pdb
+ version.lib;%(AdditionalDependencies)
+
+
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+ false
+ Win32
+ true
+ $(IntDir)IEWebGamePlugin.tlb
+ ..\..\..\web\source\activex\IEWebGamePlugin_i.h
+
+
+ ..\..\..\web\source\activex\IEWebGamePlugin_i.c
+ ..\..\..\web\source\activex\IEWebGamePlugin_p.c
+ true
+
+
+ MaxSpeed
+ WIN32;_WINDOWS;NDEBUG;_USRDLL;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+ MultiThreaded
+ Use
+ Level3
+
+
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+ 0x0409
+ $(IntDir);%(AdditionalIncludeDirectories)
+
+
+ true
+ true
+ ..\..\..\web\source\activex\IEWebGamePlugin.def
+ false
+ Windows
+ true
+ true
+ MachineX86
+ $(OutDir){$projOutName}.dll
+ version.lib;%(AdditionalDependencies)
+ $(IntDir)$(ProjectName).pdb
+ $(IntDir)$(ProjectName).pgd
+
+
+
+
+
+
+ false
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+ Create
+ Create
+
+
+
+
+ false
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {foreach item=dep from=$projDepend}
+
+ {$projectDepends[$dep]->guid}
+ false
+
+ {/foreach}
+
+
+
+
+
diff --git a/Tools/projectGenerator/templates/vc2012_csproj.tpl b/Tools/projectGenerator/templates/vc2012_csproj.tpl
new file mode 100644
index 000000000..b702174e7
--- /dev/null
+++ b/Tools/projectGenerator/templates/vc2012_csproj.tpl
@@ -0,0 +1,91 @@
+
+
+
+ Debug
+ Win32
+ 9.0.30729
+ 2.0
+ {$GUID}
+ {if $projSubSystem eq 1}Exe{elseif $projSubSystem eq 2}WinExe{else}Library{/if}
+ Properties
+ {$projName}
+ {$projName}
+ v3.5
+ 512
+
+
+ true
+ full
+ false
+ ..\..\..\game\
+ DEBUG;TRACE
+ prompt
+ 4
+ x86
+ true
+
+
+ true
+ full
+ true
+ ..\..\..\game\
+ DEBUG;TRACE
+ prompt
+ 4
+ x86
+ true
+
+
+ pdbonly
+ true
+ ..\..\..\game\
+ TRACE
+ prompt
+ 4
+ x86
+ true
+
+
+
+
+ 3.5
+
+
+ 3.5
+
+
+ 3.5
+
+
+
+ {foreach item=version key=ref from=$projSettings->references}
+ {if ($version)}
+
+ {$version}
+
+ {else}
+
+ {/if}
+ {/foreach}
+
+
+{assign var="dirWalk" value=$fileArray}
+{include file="vc2010_fileRecurseCSharp.tpl" dirWalk=$dirWalk depth=2 dirPath=$projOutput->base_dir}
+
+
+ {foreach item=dep from=$projDepend}
+
+ {$projectDepends[$dep]->guid}
+ {$projectDepends[$dep]->name}
+
+ {/foreach}
+
+
+
+
\ No newline at end of file
diff --git a/Tools/projectGenerator/templates/vc2012_dll_proj.tpl b/Tools/projectGenerator/templates/vc2012_dll_proj.tpl
new file mode 100644
index 000000000..db023a82c
--- /dev/null
+++ b/Tools/projectGenerator/templates/vc2012_dll_proj.tpl
@@ -0,0 +1,239 @@
+
+
+
+
+
+ Debug
+ Win32
+
+
+ Optimized Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+
+ {$projName}
+ {$GUID}
+
+
+
+ DynamicLibrary
+ false
+ v110
+
+
+ DynamicLibrary
+ false
+ v110
+
+
+ DynamicLibrary
+ false
+ v110
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ProjectFileVersion>10.0.30319.1
+ {$projectOffset}../../{$gameFolder}/
+ {$projectOffset}../Link/VC2010.$(Configuration).$(PlatformName)/$(ProjectName)/
+ true
+ {$projOutName}_DEBUG DLL
+ {$projectOffset}../../{$gameFolder}/
+ {$projectOffset}../Link/VC2010.$(Configuration).$(PlatformName)/$(ProjectName)/
+ false
+ {$projOutName}_OPTIMIZEDDEBUG DLL
+ {$projectOffset}../../{$gameFolder}/
+ {$projectOffset}../Link/VC2010.$(Configuration).$(PlatformName)/$(ProjectName)/
+ false
+ {$projOutName} DLL
+
+
+
+ $(IntDir)Torque 3D.tlb
+
+
+
+
+ /MP4 %(AdditionalOptions)
+ Disabled
+ true
+ {foreach item=def from=$projIncludes}{$def};{/foreach}$(DXSDK_DIR)/Include;%(AdditionalIncludeDirectories)
+ {foreach item=def from=$projDefines}{$def};{/foreach}TORQUE_DEBUG;TORQUE_DEBUG_GUARD;D3D_DEBUG_INFO;TORQUE_NET_STATS;UNICODE;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+ Sync
+ Default
+ true
+ {if $projRuntimeDebug == 1}MultiThreadedDebug{else}MultiThreadedDebugDLL{/if}
+ false
+ true
+ false
+ true
+
+
+ $(IntDir)
+ Level4
+ true
+ EditAndContinue
+ Default
+ {foreach item=def from=$projDisabledWarnings}{$def};{/foreach}4018;4100;4121;4127;4130;4244;4245;4389;4511;4512;4800;%(DisableSpecificWarnings)
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+ 0x0409
+ {foreach item=def from=$projIncludes}{$def};{/foreach}%(AdditionalIncludeDirectories)
+
+
+ {foreach item=def from=$projLibsDebug}{$def};{/foreach}%(AdditionalDependencies)
+ $(OutDir)$(TargetName).dll
+ true
+ {foreach item=def from=$projLibDirs}{$def};{/foreach}{$projectOffset}../Link/VC2010.$(Configuration).$(PlatformName);$(DXSDK_DIR)/Lib/x86;%(AdditionalLibraryDirectories)
+ LIBC;LIBCD;{foreach item=def from=$projLibsIgnore}{$def};{/foreach}%(IgnoreSpecificDefaultLibraries)
+ {$projModuleDefinitionFile}
+ true
+ $(IntDir)$(ProjectName).pdb
+ {if $projSubSystem == 1}Console{else}Windows{/if}
+ MachineX86
+ false
+
+
+ $(IntDir)$(ProjectName).pgd
+
+
+
+
+ $(IntDir)Torque 3D.tlb
+
+
+
+
+ /MP4 %(AdditionalOptions)
+ Full
+ AnySuitable
+ true
+ {foreach item=def from=$projIncludes}{$def};{/foreach}$(DXSDK_DIR)/Include;%(AdditionalIncludeDirectories)
+ {foreach item=def from=$projDefines}{$def};{/foreach}TORQUE_DEBUG;TORQUE_DEBUG_GUARD;D3D_DEBUG_INFO;TORQUE_NET_STATS;UNICODE;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+ Sync
+ Default
+ true
+ {if $projRuntimeDebug == 1}MultiThreadedDebug{else}MultiThreadedDebugDLL{/if}
+ false
+ true
+ false
+ true
+
+
+ $(IntDir)
+ Level4
+ true
+ ProgramDatabase
+ Default
+ {foreach item=def from=$projDisabledWarnings}{$def};{/foreach}4018;4100;4121;4127;4130;4244;4245;4389;4511;4512;4800;%(DisableSpecificWarnings)
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+ 0x0409
+ {foreach item=def from=$projIncludes}{$def};{/foreach}%(AdditionalIncludeDirectories)
+
+
+ {foreach item=def from=$projLibsDebug}{$def};{/foreach}%(AdditionalDependencies)
+ $(OutDir)$(TargetName).dll
+ true
+ {foreach item=def from=$projLibDirs}{$def};{/foreach}{$projectOffset}../Link/VC2010.$(Configuration).$(PlatformName);%(AdditionalLibraryDirectories)
+ LIBC;LIBCD;{foreach item=def from=$projLibsIgnore}{$def};{/foreach}%(IgnoreSpecificDefaultLibraries)
+ {$projModuleDefinitionFile}
+ true
+ $(IntDir)$(ProjectName).pdb
+ {if $projSubSystem == 1}Console{else}Windows{/if}
+ MachineX86
+ false
+
+
+ $(IntDir)$(ProjectName).pgd
+
+
+
+
+ $(IntDir)Torque 3D.tlb
+
+
+
+
+ /MP4 %(AdditionalOptions)
+ Full
+ AnySuitable
+ {foreach item=def from=$projIncludes}{$def};{/foreach}$(DXSDK_DIR)/Include;%(AdditionalIncludeDirectories)
+ {foreach item=def from=$projDefines}{$def};{/foreach}UNICODE;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+ Sync
+ Default
+ true
+ {if $projRuntimeRelease == 0}MultiThreaded{else}MultiThreadedDLL{/if}
+ false
+ true
+ false
+ true
+
+
+ $(IntDir)
+ Level4
+ true
+
+
+ Default
+ {foreach item=def from=$projDisabledWarnings}{$def};{/foreach}4018;4100;4121;4127;4130;4244;4245;4389;4511;4512;4800;%(DisableSpecificWarnings)
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+ 0x0409
+ {foreach item=def from=$projIncludes}{$def};{/foreach}%(AdditionalIncludeDirectories)
+
+
+ {foreach item=def from=$projLibs}{$def};{/foreach}%(AdditionalDependencies)
+ $(OutDir)$(TargetName).dll
+ true
+ {foreach item=def from=$projLibDirs}{$def};{/foreach}{$projectOffset}../Link/VC2010.$(Configuration).$(PlatformName);$(DXSDK_DIR)/Lib/x86;%(AdditionalLibraryDirectories)
+ LIBC;LIBCD;{foreach item=def from=$projLibsIgnore}{$def};{/foreach}%(IgnoreSpecificDefaultLibraries)
+ {$projModuleDefinitionFile}
+ false
+ $(IntDir)$(ProjectName).pdb
+ {if $projSubSystem == 1}Console{else}Windows{/if}
+ MachineX86
+ false
+
+
+ $(IntDir)$(ProjectName).pgd
+
+
+
+
+
+
+{assign var="dirWalk" value=$fileArray}
+{include file="vc2010_fileRecurse.tpl" dirWalk=$dirWalk depth=1 dirPath=$projOutput->base_dir}
+
+
+ {foreach item=dep from=$projDepend}
+
+ {$projectDepends[$dep]->guid}
+ false
+
+ {/foreach}
+
+
+
+
+
diff --git a/Tools/projectGenerator/templates/vc2012_fileRecurse.tpl b/Tools/projectGenerator/templates/vc2012_fileRecurse.tpl
new file mode 100644
index 000000000..6d0ea49b2
--- /dev/null
+++ b/Tools/projectGenerator/templates/vc2012_fileRecurse.tpl
@@ -0,0 +1,48 @@
+{* *}
+{* Is this a dir or an item? *}
+{* *}
+{if is_array($dirWalk)}
+
+ {* *}
+ {* Iterate over children *}
+ {* *}
+ {foreach from=$dirWalk item=dir key=key}
+ {include file="vc2010_fileRecurse.tpl" dirWalk=$dir dirName=$key dirPath="$dirPath$dirName/" depth=$depth+1}
+ {/foreach}
+
+{else}
+
+ {* *}
+ {* Output an item *}
+ {* *}
+ {capture assign="itemOut"}
+ {* we don't compile some files. *}
+ {if dontCompile($dirWalk->path, $projOutput)}
+ path|replace:'//':'/'|replace:'/':'\\'}">
+ true
+ true
+ true
+
+ {else}
+ {if substr($dirWalk->path, -4, 4) == ".asm"}
+
+ "{$binDir|replace:'//':'/'|replace:'/':'\\'}nasm\nasm.exe" -f win32 "%(FullPath)" -o "$(IntDir)%(Filename).obj"
+ $(IntDir)%(Filename).obj;%(Outputs)
+ "{$binDir|replace:'//':'/'|replace:'/':'\\'}nasm\nasm.exe" -f win32 "%(FullPath)" -o "$(IntDir)%(Filename).obj"
+ $(IntDir)%(Filename).obj;%(Outputs)
+ "{$binDir|replace:'//':'/'|replace:'/':'\\'}nasm\nasm.exe" -f win32 "%(FullPath)" -o "$(IntDir)%(Filename).obj"
+ $(IntDir)%(Filename).obj;%(Outputs)
+
+ {elseif $projOutput->isSourceFile( $dirWalk->path ) }
+
+ {elseif $projOutput->isResourceFile( $dirWalk->path ) }
+
+ {else}
+
+ {/if}{* if path == "*.asm" *}
+ {/if}{* if dontCompile() *}
+ {/capture}
+ {$itemOut|indent:$depth:"\t"}
+
+{/if}
\ No newline at end of file
diff --git a/Tools/projectGenerator/templates/vc2012_fileRecurseCSharp.tpl b/Tools/projectGenerator/templates/vc2012_fileRecurseCSharp.tpl
new file mode 100644
index 000000000..a101cc3e3
--- /dev/null
+++ b/Tools/projectGenerator/templates/vc2012_fileRecurseCSharp.tpl
@@ -0,0 +1,9 @@
+{if is_array($dirWalk)}
+{foreach from=$dirWalk item=dir key=key}
+{include file="vc2010_fileRecurseCSharp.tpl" dirWalk=$dir dirName=$key dirPath="$dirPath$dirName/" depth=$depth+1}
+{/foreach}
+{else}
+
+ {$dirWalk->path|replace:'../':''|replace:'/':'\\'}
+
+{/if}
\ No newline at end of file
diff --git a/Tools/projectGenerator/templates/vc2012_filter.tpl b/Tools/projectGenerator/templates/vc2012_filter.tpl
new file mode 100644
index 000000000..67fce7a69
--- /dev/null
+++ b/Tools/projectGenerator/templates/vc2012_filter.tpl
@@ -0,0 +1,40 @@
+
+
+
+
+ {gen_uuid}
+ cpp;c;cxx;rc;def;r;odl;idl;hpj;bat;cc
+
+{foreach item=folder from=$Folders}
+
+ {gen_uuid}
+
+{/foreach}
+
+
+
+ Source Files
+
+
+
+{foreach item=dir key=path from=$SrcFiles}
+
+ Source Files\{$dir}
+
+{/foreach}
+
+
+{foreach item=dir key=path from=$IncFiles}
+
+ Source Files\{$dir}
+
+{/foreach}
+
+
+{foreach item=dir key=path from=$OtherFiles}
+
+ Source Files\{$dir}
+
+{/foreach}
+
+
\ No newline at end of file
diff --git a/Tools/projectGenerator/templates/vc2012_lib_proj.tpl b/Tools/projectGenerator/templates/vc2012_lib_proj.tpl
new file mode 100644
index 000000000..b402598c6
--- /dev/null
+++ b/Tools/projectGenerator/templates/vc2012_lib_proj.tpl
@@ -0,0 +1,184 @@
+
+
+
+
+
+ Debug
+ Win32
+
+
+ Optimized Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+
+ {$GUID}
+
+
+
+ StaticLibrary
+ false
+ v110
+
+
+ StaticLibrary
+ false
+ v110
+
+
+ StaticLibrary
+ false
+ v110
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ProjectFileVersion>10.0.30319.1
+ {$libDir}/compiled/$(Configuration).$(Platform)/
+ {$projectOffset}../Link/VC2010.$(Configuration).$(PlatformName)/$(ProjectName)/
+ {$projOutName}_DEBUG
+ {$libDir}/compiled/$(Configuration).$(Platform)/
+ {$projectOffset}../Link/VC2010.$(Configuration).$(PlatformName)/$(ProjectName)/
+ {$projOutName}_OPTIMIZEDDEBUG
+ {$libDir}/compiled/$(Configuration).$(Platform)/
+ {$projectOffset}../Link/VC2010.$(Configuration).$(PlatformName)/$(ProjectName)/
+ {$projOutName}
+
+
+
+ /MP %(AdditionalOptions)
+ Disabled
+ true
+ {foreach item=def from=$projIncludes}{$def};{/foreach}%(AdditionalIncludeDirectories)
+ {foreach item=def from=$projDefines}{$def};{/foreach}TORQUE_DEBUG;TORQUE_DEBUG_GUARD;D3D_DEBUG_INFO;TORQUE_NET_STATS;UNICODE;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+
+
+ Default
+ true
+ {if $projRuntimeDebug == 1}MultiThreadedDebug{else}MultiThreadedDebugDLL{/if}
+ false
+ true
+ false
+ true
+
+
+ $(OutDir)$(ProjectName)_DEBUG.pch
+ $(OutDir)
+ $(OutDir)$(ProjectName)_DEBUG.pdb
+ Level3
+ true
+ EditAndContinue
+ Default
+ {foreach item=def from=$projDisabledWarnings}{$def};{/foreach}4244;4305;4530;4355;%(DisableSpecificWarnings)
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+ 0x0409
+
+
+ $(OutDir){$projOutName}_DEBUG.lib
+ true
+
+
+
+
+ /MP %(AdditionalOptions)
+ Full
+ AnySuitable
+ true
+ {foreach item=def from=$projIncludes}{$def};{/foreach}%(AdditionalIncludeDirectories)
+ {foreach item=def from=$projDefines}{$def};{/foreach}TORQUE_DEBUG;TORQUE_DEBUG_GUARD;D3D_DEBUG_INFO;TORQUE_NET_STATS;UNICODE;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+
+
+ Default
+ true
+ {if $projRuntimeDebug == 1}MultiThreadedDebug{else}MultiThreadedDebugDLL{/if}
+ false
+ true
+ false
+ true
+
+
+ $(OutDir)$(ProjectName)_OPTIMIZEDDEBUG.pch
+ $(OutDir)
+ $(OutDir)$(ProjectName)_OPTIMIZEDDEBUG.pdb
+ Level3
+ true
+ ProgramDatabase
+ Default
+ {foreach item=def from=$projDisabledWarnings}{$def};{/foreach}4244;4305;4530;4355;%(DisableSpecificWarnings)
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+ 0x0409
+
+
+ $(OutDir){$projOutName}_OPTIMIZEDDEBUG.lib
+ true
+
+
+
+
+ /MP %(AdditionalOptions)
+ Full
+ AnySuitable
+ {foreach item=def from=$projIncludes}{$def};{/foreach}%(AdditionalIncludeDirectories)
+ {foreach item=def from=$projDefines}{$def};{/foreach}UNICODE;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+
+
+ Default
+ true
+ {if $projRuntimeRelease == 0}MultiThreaded{else}MultiThreadedDLL{/if}
+ false
+ true
+ false
+ true
+
+
+ $(OutDir)$(ProjectName).pch
+ $(OutDir)
+ $(OutDir)$(ProjectName).pdb
+ Level3
+ true
+ Default
+ {foreach item=def from=$projDisabledWarnings}{$def};{/foreach}4244;4305;4530;4355;%(DisableSpecificWarnings)
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+
+
+ $(OutDir)/{$projOutName}.lib
+ true
+
+
+
+{assign var="dirWalk" value=$fileArray}
+{include file="vc2010_fileRecurse.tpl" dirWalk=$dirWalk depth=1 dirPath=$projOutput->base_dir}
+
+
+ {foreach item=dep from=$projDepend}
+
+ {$projectDepends[$dep]->guid}
+ false
+
+ {/foreach}
+
+
+
+
+
diff --git a/Tools/projectGenerator/templates/vc2012_proj.tpl b/Tools/projectGenerator/templates/vc2012_proj.tpl
new file mode 100644
index 000000000..96d389c56
--- /dev/null
+++ b/Tools/projectGenerator/templates/vc2012_proj.tpl
@@ -0,0 +1,239 @@
+
+
+
+
+
+ Debug
+ Win32
+
+
+ Optimized Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+
+ {$projName}
+ {$GUID}
+
+
+
+ DynamicLibrary
+ false
+ v110
+
+
+ DynamicLibrary
+ false
+ v110
+
+
+ DynamicLibrary
+ false
+ v110
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ProjectFileVersion>10.0.30319.1
+ {$projectOffset}../../{$gameFolder}/
+ {$projectOffset}../Link/VC2010.$(Configuration).$(PlatformName)/$(ProjectName)/
+ true
+ {$projOutName}_DEBUG
+ {$projectOffset}../../{$gameFolder}/
+ {$projectOffset}../Link/VC2010.$(Configuration).$(PlatformName)/$(ProjectName)/
+ false
+ {$projOutName}_OPTIMIZEDDEBUG
+ {$projectOffset}../../{$gameFolder}/
+ {$projectOffset}../Link/VC2010.$(Configuration).$(PlatformName)/$(ProjectName)/
+ false
+ {$projOutName}
+
+
+
+ $(IntDir)Torque 3D.tlb
+
+
+
+
+ /MP4 %(AdditionalOptions)
+ Disabled
+ true
+ {foreach item=def from=$projIncludes}{$def};{/foreach}$(DXSDK_DIR)/Include;%(AdditionalIncludeDirectories)
+ {foreach item=def from=$projDefines}{$def};{/foreach}TORQUE_DEBUG;TORQUE_DEBUG_GUARD;D3D_DEBUG_INFO;TORQUE_NET_STATS;UNICODE;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+ Sync
+ Default
+ true
+ {if $projRuntimeDebug == 1}MultiThreadedDebug{else}MultiThreadedDebugDLL{/if}
+ false
+ true
+ false
+ true
+
+
+ $(IntDir)
+ Level4
+ true
+ EditAndContinue
+ Default
+ {foreach item=def from=$projDisabledWarnings}{$def};{/foreach}4018;4100;4121;4127;4130;4244;4245;4389;4511;4512;4800;%(DisableSpecificWarnings)
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+ 0x0409
+ {foreach item=def from=$projIncludes}{$def};{/foreach}%(AdditionalIncludeDirectories)
+
+
+ {foreach item=def from=$projLibsDebug}{$def};{/foreach}%(AdditionalDependencies)
+ $(OutDir){$projOutName}_DEBUG.dll
+ true
+ {foreach item=def from=$projLibDirs}{$def};{/foreach}{$projectOffset}../Link/VC2010.$(Configuration).$(PlatformName);$(DXSDK_DIR)/Lib/x86;%(AdditionalLibraryDirectories)
+ LIBC;LIBCD;{foreach item=def from=$projLibsIgnore}{$def};{/foreach}%(IgnoreSpecificDefaultLibraries)
+ {$projModuleDefinitionFile}
+ true
+ $(IntDir)$(ProjectName).pdb
+ {if $projSubSystem == 1}Console{else}Windows{/if}
+ MachineX86
+ false
+
+
+ $(IntDir)$(ProjectName).pgd
+
+
+
+
+ $(IntDir)Torque 3D.tlb
+
+
+
+
+ /MP4 %(AdditionalOptions)
+ Full
+ AnySuitable
+ true
+ {foreach item=def from=$projIncludes}{$def};{/foreach}%(AdditionalIncludeDirectories)
+ {foreach item=def from=$projDefines}{$def};{/foreach}TORQUE_DEBUG;TORQUE_DEBUG_GUARD;D3D_DEBUG_INFO;TORQUE_NET_STATS;UNICODE;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+ Sync
+ Default
+ true
+ {if $projRuntimeDebug == 1}MultiThreadedDebug{else}MultiThreadedDebugDLL{/if}
+ false
+ true
+ false
+ true
+
+
+ $(IntDir)
+ Level4
+ true
+ ProgramDatabase
+ Default
+ {foreach item=def from=$projDisabledWarnings}{$def};{/foreach}4018;4100;4121;4127;4130;4244;4245;4389;4511;4512;4800;%(DisableSpecificWarnings)
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+ 0x0409
+ {foreach item=def from=$projIncludes}{$def};{/foreach}%(AdditionalIncludeDirectories)
+
+
+ {foreach item=def from=$projLibsDebug}{$def};{/foreach}%(AdditionalDependencies)
+ $(OutDir){$projOutName}_OPTIMIZEDDEBUG.dll
+ true
+ {foreach item=def from=$projLibDirs}{$def};{/foreach}{$projectOffset}../Link/VC2010.$(Configuration).$(PlatformName);%(AdditionalLibraryDirectories)
+ LIBC;LIBCD;{foreach item=def from=$projLibsIgnore}{$def};{/foreach}%(IgnoreSpecificDefaultLibraries)
+ {$projModuleDefinitionFile}
+ true
+ $(IntDir)$(ProjectName).pdb
+ {if $projSubSystem == 1}Console{else}Windows{/if}
+ MachineX86
+ false
+
+
+ $(IntDir)$(ProjectName).pgd
+
+
+
+
+ $(IntDir)Torque 3D.tlb
+
+
+
+
+ /MP4 %(AdditionalOptions)
+ Full
+ AnySuitable
+ {foreach item=def from=$projIncludes}{$def};{/foreach}%(AdditionalIncludeDirectories)
+ {foreach item=def from=$projDefines}{$def};{/foreach}UNICODE;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+ Sync
+ Default
+ true
+ {if $projRuntimeRelease == 0}MultiThreaded{else}MultiThreadedDLL{/if}
+ false
+ true
+ false
+ true
+
+
+ $(IntDir)
+ Level4
+ true
+
+
+ Default
+ {foreach item=def from=$projDisabledWarnings}{$def};{/foreach}4018;4100;4121;4127;4130;4244;4245;4389;4511;4512;4800;%(DisableSpecificWarnings)
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+ 0x0409
+ {foreach item=def from=$projIncludes}{$def};{/foreach}%(AdditionalIncludeDirectories)
+
+
+ {foreach item=def from=$projLibs}{$def};{/foreach}%(AdditionalDependencies)
+ $(OutDir){$projOutName}.dll
+ true
+ {foreach item=def from=$projLibDirs}{$def};{/foreach}{$projectOffset}../Link/VC2010.$(Configuration).$(PlatformName);%(AdditionalLibraryDirectories)
+ LIBC;LIBCD;{foreach item=def from=$projLibsIgnore}{$def};{/foreach}%(IgnoreSpecificDefaultLibraries)
+ {$projModuleDefinitionFile}
+ false
+ $(IntDir)$(ProjectName).pdb
+ {if $projSubSystem == 1}Console{else}Windows{/if}
+ MachineX86
+ false
+
+
+ $(IntDir)$(ProjectName).pgd
+
+
+
+
+
+
+{assign var="dirWalk" value=$fileArray}
+{include file="vc2010_fileRecurse.tpl" dirWalk=$dirWalk depth=1 dirPath=$projOutput->base_dir}
+
+
+ {foreach item=dep from=$projDepend}
+
+ {$projectDepends[$dep]->guid}
+ false
+
+ {/foreach}
+
+
+
+
+
diff --git a/Tools/projectGenerator/templates/vc2012_shared.tpl b/Tools/projectGenerator/templates/vc2012_shared.tpl
new file mode 100644
index 000000000..7ca888af4
--- /dev/null
+++ b/Tools/projectGenerator/templates/vc2012_shared.tpl
@@ -0,0 +1,236 @@
+
+
+
+
+
+ Debug
+ Win32
+
+
+ Optimized Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+
+ {$projName}
+ {$GUID}
+
+
+
+ Application
+ false
+ v110
+
+
+ Application
+ false
+ v110
+
+
+ Application
+ false
+ v110
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ProjectFileVersion>10.0.30319.1
+ {$projectOffset}../../{$gameFolder}/
+ {$projectOffset}../Link/VC2010.$(Configuration).$(PlatformName)/$(ProjectName)/
+ true
+ {$projOutName}_DEBUG
+ {$projectOffset}../../{$gameFolder}/
+ {$projectOffset}../Link/VC2010.$(Configuration).$(PlatformName)/$(ProjectName)/
+ false
+ {$projOutName}_OPTIMIZEDDEBUG
+ {$projectOffset}../../{$gameFolder}/
+ {$projectOffset}../Link/VC2010.$(Configuration).$(PlatformName)/$(ProjectName)/
+ false
+ {$projOutName}
+
+
+
+ $(IntDir)Torque 3D.tlb
+
+
+
+
+ /MP4 %(AdditionalOptions)
+ Disabled
+ true
+ {foreach item=def from=$projIncludes}{$def};{/foreach}%(AdditionalIncludeDirectories)
+ {foreach item=def from=$projDefines}{$def};{/foreach}TORQUE_DEBUG;TORQUE_DEBUG_GUARD;D3D_DEBUG_INFO;TORQUE_NET_STATS;UNICODE;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+ Sync
+ Default
+ true
+ {if $projRuntimeDebug == 1}MultiThreadedDebug{else}MultiThreadedDebugDLL{/if}
+ false
+ true
+ false
+ true
+
+
+ $(IntDir)
+ Level4
+ true
+ EditAndContinue
+ Default
+ {foreach item=def from=$projDisabledWarnings}{$def};{/foreach}4018;4100;4121;4127;4130;4244;4245;4389;4511;4512;4800;%(DisableSpecificWarnings)
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+ 0x0409
+ {foreach item=def from=$projIncludes}{$def};{/foreach}%(AdditionalIncludeDirectories)
+
+
+ {foreach item=def from=$projLibsDebug}{$def};{/foreach}%(AdditionalDependencies)
+ $(OutDir){$projOutName}_DEBUG.exe
+ true
+ {foreach item=def from=$projLibDirs}{$def};{/foreach}{$projectOffset}../Link/VC2010.$(Configuration).$(PlatformName);%(AdditionalLibraryDirectories)
+ LIBC;LIBCD;{foreach item=def from=$projLibsIgnore}{$def};{/foreach}%(IgnoreSpecificDefaultLibraries)
+ true
+ $(IntDir)$(ProjectName).pdb
+ {if $projSubSystem == 1}Console{else}Windows{/if}
+ MachineX86
+ false
+
+
+ $(IntDir)$(ProjectName).pgd
+
+
+
+
+ $(IntDir)Torque 3D.tlb
+
+
+
+
+ /MP4 %(AdditionalOptions)
+ Full
+ AnySuitable
+ true
+ {foreach item=def from=$projIncludes}{$def};{/foreach}%(AdditionalIncludeDirectories)
+ {foreach item=def from=$projDefines}{$def};{/foreach}TORQUE_DEBUG;TORQUE_DEBUG_GUARD;D3D_DEBUG_INFO;TORQUE_NET_STATS;UNICODE;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+ Sync
+ Default
+ true
+ {if $projRuntimeDebug == 1}MultiThreadedDebug{else}MultiThreadedDebugDLL{/if}
+ false
+ true
+ false
+ true
+
+
+ $(IntDir)
+ Level4
+ true
+ ProgramDatabase
+ Default
+ {foreach item=def from=$projDisabledWarnings}{$def};{/foreach}4018;4100;4121;4127;4130;4244;4245;4389;4511;4512;4800;%(DisableSpecificWarnings)
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+ 0x0409
+ {foreach item=def from=$projIncludes}{$def};{/foreach}%(AdditionalIncludeDirectories)
+
+
+ {foreach item=def from=$projLibsDebug}{$def};{/foreach}%(AdditionalDependencies)
+ $(OutDir){$projOutName}_OPTIMIZEDDEBUG.exe
+ true
+ {foreach item=def from=$projLibDirs}{$def};{/foreach}{$projectOffset}../Link/VC2010.$(Configuration).$(PlatformName);%(AdditionalLibraryDirectories)
+ LIBC;LIBCD;{foreach item=def from=$projLibsIgnore}{$def};{/foreach}%(IgnoreSpecificDefaultLibraries)
+ true
+ $(IntDir)$(ProjectName).pdb
+ {if $projSubSystem == 1}Console{else}Windows{/if}
+ MachineX86
+ false
+
+
+ $(IntDir)$(ProjectName).pgd
+
+
+
+
+ $(IntDir)Torque 3D.tlb
+
+
+
+
+ /MP4 %(AdditionalOptions)
+ Full
+ AnySuitable
+ true
+ {foreach item=def from=$projIncludes}{$def};{/foreach}%(AdditionalIncludeDirectories)
+ {foreach item=def from=$projDefines}{$def};{/foreach}UNICODE;_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+ Sync
+ Default
+ true
+ {if $projRuntimeRelease == 0}MultiThreaded{else}MultiThreadedDLL{/if}
+ false
+ true
+ false
+ true
+
+
+ $(IntDir)
+ Level4
+ true
+ ProgramDatabase
+ Default
+ {foreach item=def from=$projDisabledWarnings}{$def};{/foreach}4018;4100;4121;4127;4130;4244;4245;4389;4511;4512;4800;%(DisableSpecificWarnings)
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+ 0x0409
+ {foreach item=def from=$projIncludes}{$def};{/foreach}%(AdditionalIncludeDirectories)
+
+
+ {foreach item=def from=$projLibs}{$def};{/foreach}%(AdditionalDependencies)
+ $(OutDir){$projOutName}.exe
+ true
+ {foreach item=def from=$projLibDirs}{$def};{/foreach}{$projectOffset}../Link/VC2010.$(Configuration).$(PlatformName);%(AdditionalLibraryDirectories)
+ LIBC;LIBCD;{foreach item=def from=$projLibsIgnore}{$def};{/foreach}%(IgnoreSpecificDefaultLibraries)
+ false
+ $(IntDir)$(ProjectName).pdb
+ {if $projSubSystem == 1}Console{else}Windows{/if}
+ MachineX86
+ false
+
+
+ $(IntDir)$(ProjectName).pgd
+
+
+
+
+
+
+{assign var="dirWalk" value=$fileArray}
+{include file="vc2010_fileRecurse.tpl" dirWalk=$dirWalk depth=1 dirPath=$projOutput->base_dir}
+
+
+ {foreach item=dep from=$projDepend}
+
+ {$projectDepends[$dep]->guid}
+ false
+
+ {/foreach}
+
+
+
+
+
diff --git a/Tools/projectGenerator/templates/vc2012_sln.tpl b/Tools/projectGenerator/templates/vc2012_sln.tpl
new file mode 100644
index 000000000..0dfd96dec
--- /dev/null
+++ b/Tools/projectGenerator/templates/vc2012_sln.tpl
@@ -0,0 +1,42 @@
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2012
+{foreach name=projects item=project from=$projects}
+{if $project->projectFileExt eq ".csproj"}
+Project("{literal}{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}{/literal}") = "{$project->name}", "projects/{$project->name}{$project_ext}", "{$project->guid}"
+{else}
+Project("{$solution_guid}") = "{$project->name}", "projects/{$project->name}{$project_ext}", "{$project->guid}"
+{/if}
+EndProject
+{/foreach}
+{foreach key=pname item=v from=$projectExtRefs}
+Project("{$v[2]}") = "{$pname}", "{$v[0]}", "{$v[1]}"
+EndProject
+{/foreach}
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Optimized Debug|Win32 = Optimized Debug|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+{foreach name=projects item=project from=$projects}
+ {$project->guid}.Debug|Win32.ActiveCfg = Debug|Win32
+ {$project->guid}.Debug|Win32.Build.0 = Debug|Win32
+ {$project->guid}.Optimized Debug|Win32.ActiveCfg = Optimized Debug|Win32
+ {$project->guid}.Optimized Debug|Win32.Build.0 = Optimized Debug|Win32
+ {$project->guid}.Release|Win32.ActiveCfg = Release|Win32
+ {$project->guid}.Release|Win32.Build.0 = Release|Win32
+{/foreach}
+{foreach key=pname item=v from=$projectExtRefs}
+ {$v[1]}.Debug|Win32.ActiveCfg = Debug|Win32
+ {$v[1]}.Debug|Win32.Build.0 = Debug|Win32
+ {$v[1]}.Optimized Debug|Win32.ActiveCfg = Optimized Debug|Win32
+ {$v[1]}.Optimized Debug|Win32.Build.0 = Optimized Debug|Win32
+ {$v[1]}.Release|Win32.ActiveCfg = Release|Win32
+ {$v[1]}.Release|Win32.Build.0 = Release|Win32
+{/foreach}
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal