:: executed by iCafeCloud after download completes
taskkill /f /im steam.exe /t

rmdir "%LocalAppData%\Steam" /S /Q
rmdir "%ProgramFiles(x86)%\Steam" /S /Q
rmdir "%CommonProgramFiles(x86)%\Steam" /S /Q

mklink /J "%LocalAppData%\Steam" "%~dp0ICafeCloud\LocalAppData"
mklink /J "%ProgramFiles(x86)%\Steam" "%~dp0ICafeCloud\ProgramFiles(x86)"
mklink /J "%CommonProgramFiles(x86)%\Steam" "%~dp0ICafeCloud\CommonProgramFiles(x86)"

:: disable the steam bootstrapper self-update - updates arrive via the iCafeCloud download pipeline
>"%~dp0steam.cfg" echo BootStrapperInhibitAll=enable

Reg.exe add "HKCR\steam" /f /ve /t REG_SZ /d "URL:steam protocol"
Reg.exe add "HKCR\steam" /f /v "URL Protocol" /t REG_SZ /d ""
Reg.exe add "HKCR\steam\DefaultIcon" /f /ve /t REG_SZ /d "steam.exe"
Reg.exe add "HKCR\steam\Shell\Open\Command" /f /ve /t REG_SZ /d "\"%~dp0steam.exe\" -- \"%%1\""
Reg.exe add "HKCR\steamlink" /f /ve /t REG_SZ /d "URL:steamlink protocol"
Reg.exe add "HKCR\steamlink" /f /v "URL Protocol" /t REG_SZ /d ""
Reg.exe add "HKCR\steamlink\DefaultIcon" /f /ve /t REG_SZ /d "steam.exe"
Reg.exe add "HKCR\steamlink\Shell\Open\Command" /f /ve /t REG_SZ /d "\"%~dp0steam.exe\" -- \"%%1\""

Reg.exe add "HKCU\Software\Classes\steam" /f /ve /t REG_SZ /d "URL:steam protocol"
Reg.exe add "HKCU\Software\Classes\steam" /f /v "URL Protocol" /t REG_SZ /d ""
Reg.exe add "HKCU\Software\Classes\steam\DefaultIcon" /f /ve /t REG_SZ /d "steam.exe"
Reg.exe add "HKCU\Software\Classes\steam\Shell\Open\Command" /f /ve /t REG_SZ /d "\"%~dp0steam.exe\" -- \"%%1\""
Reg.exe add "HKCU\Software\Classes\steamlink" /f /ve /t REG_SZ /d "URL:steamlink protocol"
Reg.exe add "HKCU\Software\Classes\steamlink" /f /v "URL Protocol" /t REG_SZ /d ""
Reg.exe add "HKCU\Software\Classes\steamlink\DefaultIcon" /f /ve /t REG_SZ /d "steam.exe"
Reg.exe add "HKCU\Software\Classes\steamlink\Shell\Open\Command" /f /ve /t REG_SZ /d "\"%~dp0steam.exe\" -- \"%%1\""

Reg.exe add "HKLM\SOFTWARE\Wow6432Node\Valve\Steam" /f /v "InstallPath" /t REG_SZ /d "%~dp0"
Reg.exe add "HKLM\SOFTWARE\Wow6432Node\Valve\Steam" /f /v "TempAppCmdLine" /t REG_SZ /d ""
Reg.exe add "HKLM\SOFTWARE\Wow6432Node\Valve\Steam" /f /v "ReLaunchCmdLine" /t REG_SZ /d ""
Reg.exe add "HKLM\SOFTWARE\Wow6432Node\Valve\Steam" /f /v "Universe" /t REG_SZ /d "Public"
Reg.exe add "HKLM\SOFTWARE\Wow6432Node\Valve\Steam" /f /v "BetaName" /t REG_SZ /d ""
Reg.exe add "HKLM\SOFTWARE\Wow6432Node\Valve\Steam" /f /v "SteamPID" /t REG_DWORD /d "0"
Reg.exe add "HKLM\SOFTWARE\Wow6432Node\Valve\Steam" /f /v "ClientLauncherType" /t REG_DWORD /d "0"
Reg.exe add "HKLM\SOFTWARE\Wow6432Node\Valve\SteamService" /f /v "installpath_default" /t REG_SZ /d "%~dp0"
Reg.exe add "HKLM\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" /v "ExecutionPolicy" /t REG_SZ /d "RemoteSigned" /f

Reg.exe add "HKLM\SYSTEM\CurrentControlSet\Services\Steam Client Service" /f /ve /t REG_SZ /d ""
Reg.exe add "HKLM\SYSTEM\CurrentControlSet\Services\Steam Client Service" /f /v "DisplayName" /t REG_SZ /d "Steam Client Service"
Reg.exe add "HKLM\SYSTEM\CurrentControlSet\Services\Steam Client Service" /f /v "ImagePath" /t REG_SZ /d "\"C:\Program Files (x86)\Common Files\Steam\steamservice.exe\" /RunAsService"
Reg.exe add "HKLM\SYSTEM\CurrentControlSet\Services\Steam Client Service" /f /v "ObjectName" /t REG_SZ /d "LocalSystem"

:: fix open slow - disabled: "%STEAM_SERVICE_EXE%" /install
set "STEAM_SERVICE_EXE=%~dp0bin\steamservice.exe"

setlocal enabledelayedexpansion
set "STEAM_APP_SCRIPT_DIR=%~dp0"
set "STEAM_APPS_PATH=%STEAM_APP_SCRIPT_DIR%steamapps"

powershell -Command "$acfFiles = Get-ChildItem -Path '%STEAM_APPS_PATH%\*.acf'; foreach ($file in $acfFiles) { $content = Get-Content $file.FullName -Raw; $newContent = $content -replace '\"AutoUpdateBehavior\"\s+\"0\"', '\"AutoUpdateBehavior\"		\"1\"'; Set-Content -Path $file.FullName -Value $newContent; Write-Host 'edited: ' $file.Name }"

set "script_dir=%~dp0"
set "shortcut_exe_path=%~dp0Steam.exe"
set "shortcut_work_dir=%script_dir:~0,-1%"
set "shortcut_name=Steam"

powershell -Command "$p=Join-Path $env:USERPROFILE\Desktop '%shortcut_name%.lnk';$w=New-Object -ComObject WScript.Shell;$s=$w.CreateShortcut($p);$s.TargetPath='%shortcut_exe_path%';$s.Arguments='-noreactlogin -noverifyfiles -nofriendsui -nobootstrapupdate -noupdate';$s.WorkingDirectory='%shortcut_work_dir%';$s.Save();$b=[System.IO.File]::ReadAllBytes($p);$b[0x15]=$b[0x15]-bor 0x20;[System.IO.File]::WriteAllBytes($p,$b)"