evo/tools/waves_n12.py

61 lines
1.8 KiB
Python

"""Волна N+12: vfbuild27 — 31 EF в afa.java (submitRoots lambda). Запуск: python3 tools/waves_n12.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/afa.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(159, [("apply(var7, var8, var12, var6)", "apply(var7f, var8f, var12f, var6)")])
for ln in range(153, 159):
edit(
ln,
[
("applyLimb(var7, var8, var11[", "applyLimb(var7f, var8f, var11f["),
(", var10.", ", var10f."),
],
)
edit(152, [("resetPose(var7, var8)", "resetPose(var7f, var8f)")])
edit(145, [("apply(var7, var8, var6)", "apply(var7f, var8f, var6)")])
# insert before 139 (submitRoots)
INS = [
" final aif var7f = var7;",
" final Map var8f = var8;",
" final aez var10f = var10;",
" final String[] var11f = var11;",
" final aeu var12f = var12;",
]
if (
L[138].strip().startswith("this.modelRenderer.submitRoots(")
and "final aif var7f" not in L[133:139]
):
L[138:138] = INS
else:
ok = False
print(f"INSERT-MISS: L139 = {L[138].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)