Files
gen1recomp/scripts/run.ps1
2026-07-17 20:30:02 -04:00

48 lines
1.5 KiB
PowerShell

# Run the LÖVE2D Pokémon Red port (Windows).
#
# Assumes scripts\setup.ps1 has been run once (generated data present and
# LÖVE installed). Extra arguments are passed through to LÖVE.
#
# Link play is peer-to-peer over lua-enet (bundled with LÖVE): one player
# uses START > LINK > HOST A GAME, the other joins the shown address.
# UDP port defaults to 7777; override with $env:POKEPORT_LINK_PORT.
$ErrorActionPreference = 'Stop'
$Root = Split-Path -Parent $PSScriptRoot
function Fail($msg) { Write-Host "error: $msg" -ForegroundColor Red; exit 1 }
if (-not (Test-Path (Join-Path $Root 'data\generated\maps.lua'))) {
Fail 'generated data missing, run scripts\setup.ps1 first'
}
# Prefer lovec.exe (console-attached) so print output lands in the terminal;
# love.exe is a GUI-subsystem binary that swallows stdout.
function Find-Love {
foreach ($name in 'lovec', 'love') {
$cmd = Get-Command $name -ErrorAction SilentlyContinue
if ($cmd) { return $cmd.Source }
}
$dirs = @(
"$env:ProgramFiles\LOVE",
"${env:ProgramFiles(x86)}\LOVE",
"$env:LOCALAPPDATA\Programs\LOVE"
)
foreach ($d in $dirs) {
foreach ($name in 'lovec.exe', 'love.exe') {
$p = Join-Path $d $name
if ($d -and (Test-Path $p)) { return $p }
}
}
return $null
}
$LoveBin = Find-Love
if (-not $LoveBin) {
Fail 'LÖVE not found, run scripts\setup.ps1 (or install from https://love2d.org)'
}
& $LoveBin $Root @args
exit $LASTEXITCODE