"""Волна 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)