KAZIK/tools/tests/test_city_light_probe.ps1
Artvasil09 3ad5bf4c9d Develop assembly-only casino scenes and native games
Add native Durak, poker, blackjack, roulette, Buckshot and billiards scenes with animation assets and regression tests. Improve arrival, city, hall, profiles, shops, audio and exit handling; remove the portable C game core and refresh shipping executables.
2026-10-08 22:39:19 +03:00

21 lines
1.3 KiB
PowerShell

param([string]$MasmRoot = 'F:\MASM32\masm32')
$ErrorActionPreference = 'Stop'
$root = (Resolve-Path (Join-Path $PSScriptRoot '..\..')).Path
Push-Location $root
try {
& "$MasmRoot\bin\ml.exe" /c /coff /Cp /nologo "/I$MasmRoot\include" /Fobuild\actions\city-light-probe.obj tools\tests\city_light_probe.asm
if ($LASTEXITCODE -ne 0) { throw 'Lighting probe assembly failed' }
$sdkRoot = Join-Path ${env:ProgramFiles(x86)} 'Windows Kits\10\Lib'
$sdk = Get-ChildItem -LiteralPath $sdkRoot -Directory |
Sort-Object Name -Descending |
Where-Object { Test-Path -LiteralPath (Join-Path $_.FullName 'um\x86\kernel32.lib') } |
Select-Object -First 1
$paths = @()
if ($sdk) { $paths += '/LIBPATH:' + (Join-Path $sdk.FullName 'um\x86') }
$paths += "/LIBPATH:$MasmRoot\lib"
& "$MasmRoot\bin\link.exe" /nologo /SUBSYSTEM:CONSOLE /ENTRY:RunCityLightProbe@0 @paths /OUT:build\actions\city-light-probe.exe build\actions\city-light-probe.obj build\graphics\poker.obj kernel32.lib winmm.lib user32.lib ws2_32.lib gdi32.lib
if ($LASTEXITCODE -ne 0) { throw 'Lighting probe link failed' }
& .\build\actions\city-light-probe.exe
if ($LASTEXITCODE -ne 0) { throw 'Shipping light shader assertion failed' }
Write-Output 'PASS: shipping lightmap bounds, lamp positions, warm-only emissions and ground tint'
} finally { Pop-Location }