add rematches
This commit is contained in:
@@ -0,0 +1,86 @@
|
|||||||
|
$root = "C:\Users\dionmoustos\Projects\pokefirered\"
|
||||||
|
|
||||||
|
Get-ChildItem -Path $root -Recurse -File -Filter "scripts.inc" |
|
||||||
|
ForEach-Object {
|
||||||
|
Write-Host "Processing: $($_.FullName)"
|
||||||
|
|
||||||
|
# ----------------------------
|
||||||
|
# Read entire file as one string
|
||||||
|
# ----------------------------
|
||||||
|
$content = Get-Content -Path $_.FullName -Raw
|
||||||
|
|
||||||
|
# ----------------------------
|
||||||
|
# Regex pattern (PowerShell-safe)
|
||||||
|
# Your pattern:
|
||||||
|
# [a-zA-Z_0-9]+::(\n\t[a-zA-Z_0-9 ,]+)+
|
||||||
|
# ----------------------------
|
||||||
|
$pattern = '[a-zA-Z_0-9]+::(\r?\n\t[a-zA-Z_0-9 ,]+)+'
|
||||||
|
|
||||||
|
# ----------------------------
|
||||||
|
# Extract matches as array of multiline strings
|
||||||
|
# ----------------------------
|
||||||
|
$matches = [regex]::Matches($content, $pattern)
|
||||||
|
|
||||||
|
$array = @()
|
||||||
|
foreach ($m in $matches) {
|
||||||
|
$array += $m.Value
|
||||||
|
}
|
||||||
|
|
||||||
|
# ----------------------------
|
||||||
|
# Do replacements on original string
|
||||||
|
# (example transformation per item)
|
||||||
|
# ----------------------------
|
||||||
|
foreach ($item in $array) {
|
||||||
|
if ($item -match '^\s*([A-Za-z0-9_]+)::\s*\r?\n\s*trainerbattle_single\s+([A-Za-z0-9_]+),\s*([A-Za-z0-9_]+),\s*([A-Za-z0-9_]+)\r?\n\s*msgbox\s+([A-Za-z0-9_]+),\s*([A-Za-z0-9_]+)\r?\n\s*end') {
|
||||||
|
$eventScript = $matches[1]
|
||||||
|
$trainer = $matches[2]
|
||||||
|
$introText = $matches[3]
|
||||||
|
$defeatText = $matches[4]
|
||||||
|
$postbattle = $matches[5]
|
||||||
|
$messagebox = $matches[6]
|
||||||
|
|
||||||
|
$replacement = "$eventScript::
|
||||||
|
trainerbattle_single $trainer, $introText, $defeatText
|
||||||
|
specialvar VAR_RESULT, ShouldTryRematchBattle
|
||||||
|
goto_if_eq VAR_RESULT, TRUE, $eventScript`Rematch
|
||||||
|
msgbox $postbattle, $messagebox
|
||||||
|
end
|
||||||
|
|
||||||
|
$($eventScript)Rematch::
|
||||||
|
trainerbattle_rematch $trainer, $introText, $defeatText
|
||||||
|
msgbox $postbattle, $messagebox
|
||||||
|
end"
|
||||||
|
|
||||||
|
$content = $content -replace [regex]::Escape($item), $replacement
|
||||||
|
} elseif ($item -match '^\s*([A-Za-z0-9_]+)::\s*\r?\n\s*trainerbattle_double\s+([A-Za-z0-9_]+),\s*([A-Za-z0-9_]+),\s*([A-Za-z0-9_]+),\s*([A-Za-z0-9_]+)\r?\n\s*msgbox\s+([A-Za-z0-9_]+),\s*([A-Za-z0-9_]+)\r?\n\s*end') {
|
||||||
|
$eventScript = $matches[1]
|
||||||
|
$trainer = $matches[2]
|
||||||
|
$introText = $matches[3]
|
||||||
|
$defeatText = $matches[4]
|
||||||
|
$notenoughmons = $matches[5]
|
||||||
|
$postbattle = $matches[6]
|
||||||
|
$messagebox = $matches[7]
|
||||||
|
|
||||||
|
$replacement = "$eventScript::
|
||||||
|
trainerbattle_double $trainer, $introText, $defeatText, $notenoughmons
|
||||||
|
specialvar VAR_RESULT, ShouldTryRematchBattle
|
||||||
|
goto_if_eq VAR_RESULT, TRUE, $eventScript`Rematch
|
||||||
|
msgbox $postbattle, $messagebox
|
||||||
|
end
|
||||||
|
|
||||||
|
$($eventScript)Rematch::
|
||||||
|
trainerbattle_rematch_double $trainer, $introText, $defeatText, $notenoughmons
|
||||||
|
msgbox $postbattle, $messagebox
|
||||||
|
end"
|
||||||
|
|
||||||
|
$content = $content -replace [regex]::Escape($item), $replacement
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
# ----------------------------
|
||||||
|
# Write back to file
|
||||||
|
# ----------------------------
|
||||||
|
Set-Content -Path $_.FullName -Value $content.Trim()
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user