60 lines
1.6 KiB
Python
60 lines
1.6 KiB
Python
"""Волна N+13: vfbuild28 — 7 EF в adv.java (var6/var7 в submitCustomGeometry lambda).
|
|
Запуск: python3 tools/waves_n13.py"""
|
|
|
|
import os, sys
|
|
|
|
ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
|
JAVA = os.path.join(ROOT, "src/main/java")
|
|
p = os.path.join(JAVA, "defpackage/adv.java")
|
|
L = open(p, encoding="utf-8", errors="replace").read().splitlines()
|
|
ok = True
|
|
|
|
|
|
def edit(ln, pairs):
|
|
global ok
|
|
i = ln - 1
|
|
if i >= len(L):
|
|
ok = False
|
|
print(f"MISS {ln} oob")
|
|
return
|
|
line = L[i]
|
|
for old, new in pairs:
|
|
if old in line:
|
|
line = line.replace(old, new)
|
|
elif new not in line:
|
|
ok = False
|
|
print(f"MISS {ln}: {old!r} got {L[i].strip()!r}")
|
|
return
|
|
L[i] = line
|
|
|
|
|
|
edit(143, [("applyAnimation(var6, var7,", "applyAnimation(var6f, var7f,")])
|
|
edit(134, [("var6.roots.iterator()", "var6f.roots.iterator()")])
|
|
edit(124, [("if (var7.procedural) {", "if (var7f.procedural) {")])
|
|
edit(116, [("if (var7 != null) {", "if (var7f != null) {")])
|
|
edit(
|
|
103,
|
|
[
|
|
(
|
|
"applyProceduralAnimation(var6, var7,",
|
|
"applyProceduralAnimation(var6f, var7f,",
|
|
)
|
|
],
|
|
)
|
|
|
|
INS = [
|
|
" final aif var6f = var6;",
|
|
" final adu var7f = var7;",
|
|
]
|
|
if (
|
|
L[93].strip().startswith("var3.submitCustomGeometry(")
|
|
and "final aif var6f" not in L[88:94]
|
|
):
|
|
L[93:93] = INS
|
|
else:
|
|
ok = False
|
|
print(f"INSERT-MISS: L94 = {L[93].strip()[:60]!r}")
|
|
|
|
open(p, "w", encoding="utf-8").write("\n".join(L) + "\n")
|
|
print("OK" if ok else "PROBLEMS")
|
|
sys.exit(0 if ok else 1)
|