Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from pathlib import Path
- import shutil
- import subprocess
- # ==========================================
- # CONFIGURATION
- # ==========================================
- BAT_FILE = Path(r"D:\Tools\ARCtool-PC-batch\00arc test\pc-re5.bat")
- WORK_DIR = BAT_FILE.parent
- REPLACEMENT_LMT = Path(
- r"D:\Tools\000\pl00action.lmt"
- )
- REPLACEMENT_HIT = Path(
- r"D:\Tools\000\pl00.hit"
- )
- ROOT_FOLDER = Path(
- r"D:\Games\Resident Evil 5 mods\modmanager\Games\RE5\Mods\Leon over Chris ultimate pack"
- )
- CHRIS_ARCS = {
- "uPl00ChrisNormal.arc",
- "uPl00ChrisArmorA.arc",
- "uPl00ChrisArmorB.arc",
- "uPl00ChrisArmorF.arc",
- "uPl00ChrisCos1.arc",
- "uPl00ChrisCos2.arc",
- "uPl00ChrisCos3.arc",
- "uPl00ChrisCos4.arc",
- "uPl00ChrisEp1.arc",
- }
- # ==========================================
- # FIND ARCS
- # ==========================================
- arc_files = []
- for arc in ROOT_FOLDER.rglob("*.arc"):
- if arc.name in CHRIS_ARCS:
- arc_files.append(arc)
- print(f"Found {len(arc_files)} Chris ARC files.")
- # ==========================================
- # PROCESS
- # ==========================================
- for original_arc in arc_files:
- try:
- print(f"\nProcessing: {original_arc}")
- temp_arc = WORK_DIR / original_arc.name
- if temp_arc.exists():
- temp_arc.unlink()
- extracted_folder = WORK_DIR / temp_arc.stem
- if extracted_folder.exists():
- shutil.rmtree(extracted_folder)
- # Copy ARC to ARCtool folder
- shutil.copy2(original_arc, temp_arc)
- # Extract ARC
- subprocess.run(
- [str(BAT_FILE), str(temp_arc)],
- cwd=WORK_DIR,
- check=True
- )
- # Delete temporary ARC copy
- temp_arc.unlink()
- # Replace pl00action.lmt
- target_lmt = (
- extracted_folder /
- "pawn" / "pl" / "pl00" /
- "motion" / "pl00action.lmt"
- )
- if not target_lmt.exists():
- raise FileNotFoundError(
- f"Missing target file: {target_lmt}"
- )
- shutil.copy2(REPLACEMENT_LMT, target_lmt)
- # Replace pl00.hit
- target_hit = (
- extracted_folder /
- "pawn" / "pl" / "pl00" /
- "soft" / "pl00.hit"
- )
- if not target_hit.exists():
- raise FileNotFoundError(
- f"Missing target file: {target_hit}"
- )
- shutil.copy2(REPLACEMENT_HIT, target_hit)
- # Rebuild ARC
- subprocess.run(
- [str(BAT_FILE), str(extracted_folder)],
- cwd=WORK_DIR,
- check=True
- )
- rebuilt_arc = WORK_DIR / original_arc.name
- if not rebuilt_arc.exists():
- raise FileNotFoundError(
- f"Rebuilt ARC not found: {rebuilt_arc}"
- )
- # Move rebuilt ARC back
- shutil.move(str(rebuilt_arc), str(original_arc))
- # Clean up extracted folder
- shutil.rmtree(extracted_folder)
- print("Success")
- except Exception as e:
- print(f"FAILED: {e}")
- print("\nFinished.")
Advertisement
Add Comment
Please, Sign In to add comment