Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
67 changes: 67 additions & 0 deletions .github/workflows/windows-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
name: Build CT_AlienIsolation (Windows)

on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
workflow_dispatch:

jobs:
build:
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup MSBuild
uses: microsoft/setup-msbuild@v2

- name: Setup NuGet
uses: NuGet/setup-nuget@v2

- name: Restore NuGet packages
run: nuget restore "Alien Isolation/CT_AlienIsolation.sln"

- name: Build Win32 Release
run: msbuild "Alien Isolation/CT_AlienIsolation.vcxproj" /t:Build /p:Configuration=Release /p:Platform=Win32 /m

- name: Build x64 Release
run: msbuild "Alien Isolation/CT_AlienIsolation.vcxproj" /t:Build /p:Configuration=Release /p:Platform=x64 /m

- name: Collect artifacts
shell: pwsh
run: |
$artifactDir = 'artifacts'
New-Item -ItemType Directory -Force -Path $artifactDir | Out-Null

$copies = @(
@{ Source = 'Build/CT_AlienIsolation.dll'; Destination = 'CT_AlienIsolation.Win32.dll' },
@{ Source = 'Build/CT_AlienIsolation.pdb'; Destination = 'CT_AlienIsolation.Win32.pdb' },
@{ SourcePattern = 'CT_Alien.*\Release\vc143.pdb'; Destination = 'vc143.Win32.pdb' },
@{ Source = 'Alien Isolation/x64/Release/CT_AlienIsolation.dll'; Destination = 'CT_AlienIsolation.x64.dll' },
@{ Source = 'Alien Isolation/x64/Release/CT_AlienIsolation.pdb'; Destination = 'CT_AlienIsolation.x64.pdb' },
@{ SourcePattern = 'CT_Alien.*\x64\Release\vc143.pdb'; Destination = 'vc143.x64.pdb' }
)

foreach ($item in $copies) {
if ($item.ContainsKey('Source') -and (Test-Path $item.Source)) {
Copy-Item -Path $item.Source -Destination (Join-Path $artifactDir $item.Destination) -Force
}

if ($item.ContainsKey('SourcePattern')) {
$match = Get-ChildItem -Path $item.SourcePattern -ErrorAction SilentlyContinue | Select-Object -First 1
if ($null -ne $match) {
Copy-Item -Path $match.FullName -Destination (Join-Path $artifactDir $item.Destination) -Force
}
}
}

Get-ChildItem $artifactDir | Format-Table -AutoSize

- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: CT_AlienIsolation-binaries
path: artifacts
if-no-files-found: warn
57 changes: 36 additions & 21 deletions Alien Isolation/CT_AlienIsolation.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -22,32 +22,32 @@
<VCProjectVersion>15.0</VCProjectVersion>
<ProjectGuid>{A83381F5-6D18-43C8-8B95-030F3B2BE6C5}</ProjectGuid>
<RootNamespace>CTAlienIsolation</RootNamespace>
<WindowsTargetPlatformVersion>10.0.18362.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
Expand Down Expand Up @@ -81,11 +81,12 @@
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>../../../DirectXTK/Inc;../../../minhook-master/include;../../../boost_1_64_0-bin;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(ProjectDir)ThirdParty\MinHook\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
</ClCompile>
<Link>
<AdditionalLibraryDirectories>../../../minhook-master/build/VC15/lib/Debug;../../../DirectXTK/Bin/Desktop_2017/Win32/Debug;../../../boost_1_64_0-bin/lib32-msvc-14.1;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalLibraryDirectories>$(ProjectDir)packages\directxtk_desktop_2015.2019.5.31.1\lib\Win32\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
Expand All @@ -94,10 +95,11 @@
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>$(ProjectDir)ThirdParty\MinHook\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<AdditionalOptions>
</AdditionalOptions>
<AdditionalLibraryDirectories>$(ProjectDir)packages\directxtk_desktop_2015.2019.5.31.1\lib\x64\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
Expand All @@ -108,14 +110,15 @@
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>../../../DirectXTK/Inc;../../../minhook-master/include;../../../boost_1_64_0-bin;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(ProjectDir)ThirdParty\MinHook\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<PreprocessorDefinitions>WIN32_LEAN_AND_MEAN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalLibraryDirectories>../../../minhook-master/build/VC15/lib/Release;../../../DirectXTK/Bin/Desktop_2017/Win32/Release;../../../boost_1_64_0-bin/lib32-msvc-14.1;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalLibraryDirectories>$(ProjectDir)packages\directxtk_desktop_2015.2019.5.31.1\lib\Win32\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
Expand All @@ -126,12 +129,13 @@
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>$(ProjectDir)ThirdParty\MinHook\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalOptions>
</AdditionalOptions>
<AdditionalLibraryDirectories>$(ProjectDir)packages\directxtk_desktop_2015.2019.5.31.1\lib\x64\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
Expand All @@ -148,6 +152,11 @@
<ClCompile Include="Main.cpp" />
<ClCompile Include="Rendering\CTRenderer.cpp" />
<ClCompile Include="Rendering\ShaderStore.cpp" />
<ClCompile Include="ThirdParty\MinHook\src\buffer.c" />
<ClCompile Include="ThirdParty\MinHook\src\hook.c" />
<ClCompile Include="ThirdParty\MinHook\src\trampoline.c" />
<ClCompile Include="ThirdParty\MinHook\src\hde\hde32.c" />
<ClCompile Include="ThirdParty\MinHook\src\hde\hde64.c" />
<ClCompile Include="Tools\CharacterController.cpp" />
<ClCompile Include="Tools\VisualsController.cpp" />
<ClCompile Include="UI.cpp" />
Expand Down Expand Up @@ -177,6 +186,14 @@
<ClInclude Include="Rendering\CTRenderer.h" />
<ClInclude Include="Rendering\ShaderStore.h" />
<ClInclude Include="resource.h" />
<ClInclude Include="ThirdParty\MinHook\include\MinHook.h" />
<ClInclude Include="ThirdParty\MinHook\src\buffer.h" />
<ClInclude Include="ThirdParty\MinHook\src\trampoline.h" />
<ClInclude Include="ThirdParty\MinHook\src\hde\hde32.h" />
<ClInclude Include="ThirdParty\MinHook\src\hde\hde64.h" />
<ClInclude Include="ThirdParty\MinHook\src\hde\pstdint.h" />
<ClInclude Include="ThirdParty\MinHook\src\hde\table32.h" />
<ClInclude Include="ThirdParty\MinHook\src\hde\table64.h" />
<ClInclude Include="Tools\CharacterController.h" />
<ClInclude Include="Tools\VisualsController.h" />
<ClInclude Include="UI.h" />
Expand All @@ -195,20 +212,18 @@
<ImportGroup Label="ExtensionTargets">
<Import Project="packages\directxtk_desktop_2015.2019.5.31.1\build\native\directxtk_desktop_2015.targets" Condition="Exists('packages\directxtk_desktop_2015.2019.5.31.1\build\native\directxtk_desktop_2015.targets')" />
<Import Project="packages\boost.1.72.0.0\build\boost.targets" Condition="Exists('packages\boost.1.72.0.0\build\boost.targets')" />
<Import Project="packages\minhook.1.3.3\build\native\minhook.targets" Condition="Exists('packages\minhook.1.3.3\build\native\minhook.targets')" />
<Import Project="packages\boost_chrono-vc140.1.72.0.0\build\boost_chrono-vc140.targets" Condition="Exists('packages\boost_chrono-vc140.1.72.0.0\build\boost_chrono-vc140.targets')" />
<Import Project="packages\boost_filesystem-vc140.1.72.0.0\build\boost_filesystem-vc140.targets" Condition="Exists('packages\boost_filesystem-vc140.1.72.0.0\build\boost_filesystem-vc140.targets')" />
<Import Project="packages\boost_date_time-vc140.1.72.0.0\build\boost_date_time-vc140.targets" Condition="Exists('packages\boost_date_time-vc140.1.72.0.0\build\boost_date_time-vc140.targets')" />
<Import Project="packages\boost_chrono-vc142.1.72.0.0\build\boost_chrono-vc142.targets" Condition="Exists('packages\boost_chrono-vc142.1.72.0.0\build\boost_chrono-vc142.targets')" />
<Import Project="packages\boost_filesystem-vc142.1.72.0.0\build\boost_filesystem-vc142.targets" Condition="Exists('packages\boost_filesystem-vc142.1.72.0.0\build\boost_filesystem-vc142.targets')" />
<Import Project="packages\boost_date_time-vc142.1.72.0.0\build\boost_date_time-vc142.targets" Condition="Exists('packages\boost_date_time-vc142.1.72.0.0\build\boost_date_time-vc142.targets')" />
</ImportGroup>
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('packages\directxtk_desktop_2015.2019.5.31.1\build\native\directxtk_desktop_2015.targets')" Text="$([System.String]::Format('$(ErrorText)', 'packages\directxtk_desktop_2015.2019.5.31.1\build\native\directxtk_desktop_2015.targets'))" />
<Error Condition="!Exists('packages\boost.1.72.0.0\build\boost.targets')" Text="$([System.String]::Format('$(ErrorText)', 'packages\boost.1.72.0.0\build\boost.targets'))" />
<Error Condition="!Exists('packages\minhook.1.3.3\build\native\minhook.targets')" Text="$([System.String]::Format('$(ErrorText)', 'packages\minhook.1.3.3\build\native\minhook.targets'))" />
<Error Condition="!Exists('packages\boost_chrono-vc140.1.72.0.0\build\boost_chrono-vc140.targets')" Text="$([System.String]::Format('$(ErrorText)', 'packages\boost_chrono-vc140.1.72.0.0\build\boost_chrono-vc140.targets'))" />
<Error Condition="!Exists('packages\boost_filesystem-vc140.1.72.0.0\build\boost_filesystem-vc140.targets')" Text="$([System.String]::Format('$(ErrorText)', 'packages\boost_filesystem-vc140.1.72.0.0\build\boost_filesystem-vc140.targets'))" />
<Error Condition="!Exists('packages\boost_date_time-vc140.1.72.0.0\build\boost_date_time-vc140.targets')" Text="$([System.String]::Format('$(ErrorText)', 'packages\boost_date_time-vc140.1.72.0.0\build\boost_date_time-vc140.targets'))" />
<Error Condition="!Exists('packages\boost_chrono-vc142.1.72.0.0\build\boost_chrono-vc142.targets')" Text="$([System.String]::Format('$(ErrorText)', 'packages\boost_chrono-vc142.1.72.0.0\build\boost_chrono-vc142.targets'))" />
<Error Condition="!Exists('packages\boost_filesystem-vc142.1.72.0.0\build\boost_filesystem-vc142.targets')" Text="$([System.String]::Format('$(ErrorText)', 'packages\boost_filesystem-vc142.1.72.0.0\build\boost_filesystem-vc142.targets'))" />
<Error Condition="!Exists('packages\boost_date_time-vc142.1.72.0.0\build\boost_date_time-vc142.targets')" Text="$([System.String]::Format('$(ErrorText)', 'packages\boost_date_time-vc142.1.72.0.0\build\boost_date_time-vc142.targets'))" />
</Target>
</Project>
57 changes: 57 additions & 0 deletions Alien Isolation/CT_AlienIsolation.vcxproj.filters
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,24 @@
<Filter Include="Source Files\Tools">
<UniqueIdentifier>{d5489722-4e47-49db-b8be-1231dbc72f8d}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\ThirdParty">
<UniqueIdentifier>{0f8c4dbe-bdec-4fcb-84a3-2aa9edccd925}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\ThirdParty\MinHook">
<UniqueIdentifier>{dd0d13fa-4c6e-47e3-8ae5-b38be2b9b47c}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\ThirdParty\MinHook\hde">
<UniqueIdentifier>{fc8d5f32-cae1-46d5-9f6a-6f0a7fe2f667}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files\ThirdParty">
<UniqueIdentifier>{f06d5d0e-e3fb-4210-823d-85416b97a3a4}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files\ThirdParty\MinHook">
<UniqueIdentifier>{c54ce0d5-850f-4205-9ad2-47a554a05898}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files\ThirdParty\MinHook\hde">
<UniqueIdentifier>{6ad90022-211d-4a62-8d5e-058f61548f26}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="UI.cpp">
Expand Down Expand Up @@ -96,6 +114,21 @@
<ClCompile Include="Rendering\ShaderStore.cpp">
<Filter>Source Files\Rendering</Filter>
</ClCompile>
<ClCompile Include="ThirdParty\MinHook\src\buffer.c">
<Filter>Source Files\ThirdParty\MinHook</Filter>
</ClCompile>
<ClCompile Include="ThirdParty\MinHook\src\hook.c">
<Filter>Source Files\ThirdParty\MinHook</Filter>
</ClCompile>
<ClCompile Include="ThirdParty\MinHook\src\trampoline.c">
<Filter>Source Files\ThirdParty\MinHook</Filter>
</ClCompile>
<ClCompile Include="ThirdParty\MinHook\src\hde\hde32.c">
<Filter>Source Files\ThirdParty\MinHook\hde</Filter>
</ClCompile>
<ClCompile Include="ThirdParty\MinHook\src\hde\hde64.c">
<Filter>Source Files\ThirdParty\MinHook\hde</Filter>
</ClCompile>
<ClCompile Include="Tools\CharacterController.cpp">
<Filter>Source Files\Tools</Filter>
</ClCompile>
Expand Down Expand Up @@ -170,6 +203,30 @@
<ClInclude Include="Rendering\ShaderStore.h">
<Filter>Source Files\Rendering</Filter>
</ClInclude>
<ClInclude Include="ThirdParty\MinHook\include\MinHook.h">
<Filter>Header Files\ThirdParty\MinHook</Filter>
</ClInclude>
<ClInclude Include="ThirdParty\MinHook\src\buffer.h">
<Filter>Header Files\ThirdParty\MinHook</Filter>
</ClInclude>
<ClInclude Include="ThirdParty\MinHook\src\trampoline.h">
<Filter>Header Files\ThirdParty\MinHook</Filter>
</ClInclude>
<ClInclude Include="ThirdParty\MinHook\src\hde\hde32.h">
<Filter>Header Files\ThirdParty\MinHook\hde</Filter>
</ClInclude>
<ClInclude Include="ThirdParty\MinHook\src\hde\hde64.h">
<Filter>Header Files\ThirdParty\MinHook\hde</Filter>
</ClInclude>
<ClInclude Include="ThirdParty\MinHook\src\hde\pstdint.h">
<Filter>Header Files\ThirdParty\MinHook\hde</Filter>
</ClInclude>
<ClInclude Include="ThirdParty\MinHook\src\hde\table32.h">
<Filter>Header Files\ThirdParty\MinHook\hde</Filter>
</ClInclude>
<ClInclude Include="ThirdParty\MinHook\src\hde\table64.h">
<Filter>Header Files\ThirdParty\MinHook\hde</Filter>
</ClInclude>
<ClInclude Include="Tools\CharacterController.h">
<Filter>Source Files\Tools</Filter>
</ClInclude>
Expand Down
4 changes: 4 additions & 0 deletions Alien Isolation/DllMain.cpp
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
#include "Main.h"
#include "Util/Util.h"
#include <thread>

DWORD WINAPI RunCT(LPVOID arg)
{
util::log::Init();
util::log::Write("CT_AlienIsolation injected. Spawning main loop...");

g_mainHandle = new Main();
if (g_mainHandle->Initialize())
g_mainHandle->Run();
Expand Down
Loading