Initial commit: Complete open-source Decal rebuild

All 5 phases of the open-source Decal rebuild:

Phase 1: 14 decompiled .NET projects (Interop.*, Adapter, FileService, DecalUtil)
Phase 2: 10 native DLLs rewritten as C# COM servers with matching GUIDs
  - DecalDat, DHS, SpellFilter, DecalInput, DecalNet, DecalFilters
  - Decal.Core, DecalControls, DecalRender, D3DService
Phase 3: C++ shims for Inject.DLL (D3D9 hooking) and LauncherHook.DLL
Phase 4: DenAgent WinForms tray application
Phase 5: WiX installer and build script

25 C# projects building with 0 errors.
Native C++ projects require VS 2022 + Windows SDK (x86).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
erik 2026-02-08 18:27:56 +01:00
commit d1442e3747
1382 changed files with 170725 additions and 0 deletions

51
build.cmd Normal file
View file

@ -0,0 +1,51 @@
@echo off
REM Decal Open Source Build Script
REM Builds all managed C# projects and the WiX installer.
REM Native C++ projects (Inject.DLL, LauncherHook.DLL) must be built separately
REM with Visual Studio 2022 or CMake (x86/Win32 target).
echo ============================================
echo Decal Open Source Build
echo ============================================
echo.
REM Step 1: Build managed solution
echo [1/3] Building managed C# solution (25 projects)...
dotnet build Managed\Decal.sln -c Release
if errorlevel 1 (
echo ERROR: Managed build failed.
exit /b 1
)
echo Managed build succeeded.
echo.
REM Step 2: Build native C++ projects (requires Visual Studio 2022)
echo [2/3] Native C++ projects...
if exist "Native\build\Release\Inject.DLL" (
echo Native DLLs already built.
) else (
echo NOTE: Native C++ projects must be built manually:
echo cd Native
echo cmake -G "Visual Studio 17 2022" -A Win32 -B build
echo cmake --build build --config Release
echo.
echo Skipping native build for now.
)
echo.
REM Step 3: Build installer (requires WiX Toolset v5)
echo [3/3] Installer...
if exist "%USERPROFILE%\.dotnet\tools\wix.exe" (
dotnet build Installer\Decal.Installer.wixproj -c Release ^
-p:BuildOutput=..\Managed\bin\Release ^
-p:NativeOutput=..\Native\build\Release
) else (
echo NOTE: WiX Toolset not installed. Install with:
echo dotnet tool install --global wix
echo Skipping installer build.
)
echo.
echo ============================================
echo Build complete.
echo ============================================