Both frozen files live inside the versioned install and neither ships in the zip -- environ.ini is generated on first run, glass_layout.cfg is ours. So Nick extracting the next build would get a cab that comes up wrong with no error anywhere, which is exactly the failure the freeze was supposed to end. Masters now live at the stable C:\bt411\ (podprofile.ini, glass_layout.cfg, podkit.ps1). setup_pod.bat pushes them into the newest BT411_* folder -- run once per extract. runpod.bat resolves the newest install and applies the kit itself, so the remote launch path needs no per-build edit. Re-tuning means editing the MASTER: the apply overwrites the install's copy on purpose, so a moved panel has one place to look. Also records, for playtesting on the cab: all five tester launchers set no pod key at all, so each inherits the rig from environ.ini without knowing the pod exists -- verified by running play_solo.bat on the cart (7 settings applied, not 9, because the bat sets BT_PLATFORM and BT_START_INSIDE itself and the real environment wins). That is the case against a separate pod-only ini: a second file would need every launcher to opt in. Verified: kit re-applies idempotently, and the rewritten runpod.bat brings the cab up correct -- 9 settings, GLASS, -fit borderless, all three surfaces on their intended displays. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Rw7No5wLTpkaUgA3ANbtZZ
42 lines
2.1 KiB
PowerShell
42 lines
2.1 KiB
PowerShell
# Apply the ALPHA-MR pod kit to a BT411 install's content directory.
|
|
#
|
|
# WHY THIS EXISTS: the frozen rig config lives in content\environ.ini and
|
|
# glass_layout.cfg -- both INSIDE the versioned install folder, and neither is
|
|
# shipped in the zip (environ.ini is generated on first run). So extracting a
|
|
# new build gives you a cab that comes up wrong with no error anywhere. The
|
|
# MASTERS live beside this script at a stable path; this pushes them into
|
|
# whichever install you point it at. Idempotent -- safe to re-run.
|
|
param([Parameter(Mandatory=$true)][string]$Content)
|
|
|
|
$here = Split-Path -Parent $MyInvocation.MyCommand.Definition
|
|
$prof = Join-Path $here 'podprofile.ini'
|
|
$lay = Join-Path $here 'glass_layout.cfg'
|
|
$ini = Join-Path $Content 'environ.ini'
|
|
|
|
if (-not (Test-Path $Content)) { Write-Output "NO SUCH CONTENT DIR: $Content"; exit 1 }
|
|
if (-not (Test-Path $prof)) { Write-Output "MISSING MASTER: $prof"; exit 1 }
|
|
|
|
# --- the env block: replace anything between the markers, keep the rest ------
|
|
$block = Get-Content $prof
|
|
$keep = @()
|
|
if (Test-Path $ini) {
|
|
$inBlock = $false
|
|
foreach ($line in (Get-Content $ini)) {
|
|
if ($line -match '^# ==== BT411 POD PROFILE') { $inBlock = $true; continue }
|
|
if ($line -match '^# ==== END BT411 POD PROFILE') { $inBlock = $false; continue }
|
|
if (-not $inBlock) { $keep += $line }
|
|
}
|
|
while ($keep.Count -gt 0 -and $keep[-1].Trim() -eq '') { $keep = $keep[0..($keep.Count-2)] }
|
|
}
|
|
($keep + @('') + $block) | Set-Content $ini -Encoding ascii
|
|
|
|
# --- the layout: the master always wins -------------------------------------
|
|
# Re-tuning the cab means editing the MASTER beside this script, not the copy
|
|
# in the install -- a BT_GLASS_LAYOUT=save drag inside an install is overwritten
|
|
# on the next apply, on purpose. One place to look when a panel moves.
|
|
if (Test-Path $lay) { Copy-Item $lay (Join-Path $Content 'glass_layout.cfg') -Force }
|
|
|
|
Write-Output "pod kit applied to $Content"
|
|
Get-Content $ini | Select-String '^(BT_|L4)' | ForEach-Object { " " + $_.Line }
|
|
if (Test-Path $lay) { Get-Content (Join-Path $Content 'glass_layout.cfg') | Select-String '^[A-Z]' | ForEach-Object { " " + $_.Line } }
|