$NewName = $args[0]
$InstallDir = $PSScriptRoot
function Write-ReplaceContentInFile([string]$Regex, [string]$Replacement, [string]$FilePath)
{
$content = (Get-Content $FilePath) -replace $Regex, $Replacement
[IO.File]::WriteAllLines($FilePath, $content)
}
# Trim a string down to a specified amount of characters
if ($NewName.Length -gt 16) {
$NewName = $NewName.Substring(0, 16);
}
Write-ReplaceContentInFile -Regex '^PlayerName = (.+)' -Replacement "PlayerName = $NewName" -FilePath "$InstallDir\preferences.txt"
$InstallDir = $PSScriptRoot
# Accessible via $Display.Width and $Display.Height
Add-Type -AssemblyName System.Windows.Forms
$Display = ([System.Windows.Forms.Screen]::AllScreens | Where-Object Primary).Bounds
function Write-ReplaceContentInFile([string]$Regex, [string]$Replacement, [string]$FilePath)
{
$content = (Get-Content $FilePath) -replace $Regex, $Replacement
[IO.File]::WriteAllLines($FilePath, $content)
}
# Use regex to replace text within a file. Quotes are escaped by double quoting ("")
Write-ReplaceContentInFile -Regex '^ScreenWidth = "(.+)"' -Replacement "ScreenWidth $($Display.Width)" -FilePath "$InstallDir\preferences.txt"
Write-ReplaceContentInFile -Regex '^ScreenHeight = "(.+)"' -Replacement "ScreenHeight $($Display.Height)" -FilePath "$InstallDir\preferences.txt"